国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#語言實現(xiàn)word文檔轉(zhuǎn)pdf文檔

2018-01-06 01:05:51茍博文
電腦知識與技術(shù) 2017年35期
關(guān)鍵詞:語言

茍博文

摘要:該文主要探討基于C#語言實現(xiàn)將word文檔轉(zhuǎn)換為pdf文檔,并對分析了其轉(zhuǎn)換性能和在小微企業(yè)數(shù)據(jù)化決策系統(tǒng)中的應(yīng)用問題。

關(guān)鍵詞:C#語言;word文檔;pdf文檔

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)35-0133-03

Implementation of Word Document to PDF Document Based on C# Language

GOU Bo-wen

(Department of information science and technology, School of tourism and culture, Yunnan University, Lijiang 674100, China)

Abstract: This paper mainly discusses the conversion of word document to PDF document Based on C# language, and analyzes its conversion performance and application in small and micro enterprise data decision making system.

Key words: C# language; word document; PDF document

在計算機(jī)技術(shù)的高速發(fā)展得當(dāng)今,網(wǎng)上資料的購買,下載已經(jīng)變得越來越普遍,但是很多時候用戶不知道自己下載的數(shù)據(jù)或者資料是否符合自己所需,用戶只能憑資料標(biāo)題臆想資料的內(nèi)容,為了解決這個問題,實現(xiàn)網(wǎng)絡(luò)在線的預(yù)覽資料內(nèi)容,這樣極大的讓用戶確定了這份資料是否是自己想要的,然后用戶就可以根據(jù)自己意愿來確定是否購買并下載這份數(shù)據(jù)。目前網(wǎng)絡(luò)上下載的比較多的就是word文檔,但是網(wǎng)頁上無法直接放置word文檔,所以用戶無法再網(wǎng)絡(luò)上預(yù)覽,必須將word文檔轉(zhuǎn)換為pdf或者h(yuǎn)tml文檔,才能放置在網(wǎng)頁上供用戶預(yù)覽,所以本文所決絕的問題有很大的使用價值。

1 決策支持系統(tǒng)的技術(shù)難題

在此系統(tǒng)中,因為采用了預(yù)覽后付費下載模式,所以這給編碼實現(xiàn)帶來一個一個難題,因為分析師分析完后,會存成一份word文件,但是網(wǎng)頁是不能直接顯示word文件的,所以需要將word文件轉(zhuǎn)為pdf文件或者h(yuǎn)tml等能在網(wǎng)頁加載的文件,所以需要將word文件轉(zhuǎn)換成pdf或者h(yuǎn)tml文件。這樣用戶就可以直接在網(wǎng)頁上預(yù)覽一部分。本次實現(xiàn)基于C#語言操作word文檔將其轉(zhuǎn)換為pdf正是解決了這個問題。

2 word轉(zhuǎn)PDF現(xiàn)狀

將word文件轉(zhuǎn)換為PDF目前在不同的編程語言下有不同的處理方式,下面就舉java和C#這兩種編程語言為例,來談?wù)勥@個問題。

首先是java語言操作word轉(zhuǎn)pdf,java與語言作為一門面向?qū)ο笳Z言是十分強大的,如果要是使用java語言操作word轉(zhuǎn)pdf的話,有三種方法,第一種是首先下載Itext的相關(guān)的包和poi相關(guān)的包,首先利用poi的包中的類將word文件轉(zhuǎn)換為Html文件,在這個過程中要注意word文件中的圖片保存問題,還有老版以doc結(jié)尾的word文件和新版以docx結(jié)尾的文件的轉(zhuǎn)換方式不同,需要編寫不同的代碼,其次再利用Itext相關(guān)的包將html文件轉(zhuǎn)換為PDF文件,在這個過程中要注意html代碼中的endTag問題,還有中文問題,因為默認(rèn)的Itext是不支持中文的,盡管你這些都注意了,你轉(zhuǎn)換出來的pdf文件和原word文件的格式還是會有偏差,而且明顯,第二種是利用openoffice服務(wù)和jodconverter包通過操作openOffice服務(wù)轉(zhuǎn)換,缺點:會占用100M左右的內(nèi)存,比較消耗硬件資源,復(fù)雜格式容易出錯。第三種jacob + msOfficeWord + SaveAsPDFandXPS格式保存完美,但是效率較慢。

其次是C#語言操作word轉(zhuǎn)pdf文件,應(yīng)為C#語言是微軟主導(dǎo)的編程語言,而且office也是自家的產(chǎn)品,所以在這方面有天然的優(yōu)勢,只需添加Microsoft.Office.Interop.Word的引用即可實現(xiàn)word轉(zhuǎn)pdf,而且不存在doc結(jié)尾的文件和docx結(jié)尾的文件兼容的問題,而且格式保存較好。而且轉(zhuǎn)換一份8頁的有多圖片和表格word文檔只需3s左右。

3 基本接口

首先在word轉(zhuǎn)pdf中,有這么幾個接口:WordToPDF_auto(string sourcePath, string targetPath),WordToPDF_manual(String sourcePath,String targetPath,int startPage,int endPage),isWord(String Source)。

3.1 WordToPDF_auto(string sourcePath, string targetPath)接口

這個接口就是當(dāng)用戶輸入word的路徑,和要保存的文件路徑,然后就會將word文檔全部轉(zhuǎn)換為pdf文檔。

3.2 WordToPDF_manual(String sourcePath,String targetPath,int startPage,int endPage)接口

這個接口是用戶只需輸入word文檔的源路徑和輸出pdf的目標(biāo)路徑和轉(zhuǎn)換的開始頁和結(jié)束頁,就將指定的word開始頁到word結(jié)束頁的內(nèi)容轉(zhuǎn)換為pdf。

3.3 isWord(String sourcePath)接口

這個接口是是根據(jù)用戶輸入的文檔路徑來讀取文件并判斷文件是否是word文件。

4 基本處理邏輯

4.1 Word轉(zhuǎn)pdf(自動)的處理邏輯

1) 在程序里添加微軟的和word相關(guān)的com組件。

2) 然后在程序里增Microsoft.Office.Interop.Word的引用。

3) 首先將系統(tǒng)的word進(jìn)程殺掉。

4) 然后更具用戶輸入的word文件源路徑來判斷文件的后綴是否為doc或者docx來判斷文件是否是word文件。

5) 然后創(chuàng)建Microsoft.Office.Interop.Word.Application對象,根絕這個對象來創(chuàng)建Document對象,然后使調(diào)用計算word的頁數(shù)如果文檔頁數(shù)低于1頁直接返回false,如果大于一頁,則調(diào)用document.ExportAsFixedFormat(targetPath, WdExportFormat.wdExportFormatPDF)方法將文檔轉(zhuǎn)換成pdf文檔到目標(biāo)路徑。如果轉(zhuǎn)換失敗就會打印異常信息。

6) 最后再調(diào)用Document對象的close()方法關(guān)閉Document和調(diào)用Microsoft.Office.Interop.Word.Application。

4.2 Word轉(zhuǎn)pdf(手動)的處理邏輯

手動控制轉(zhuǎn)換的就是在自動的基礎(chǔ)上增加了用戶對轉(zhuǎn)換內(nèi)容的控制,可以控制轉(zhuǎn)換的起始頁和結(jié)束頁,還增加了用戶輸入的起始頁和結(jié)束頁的判斷。判斷輸入的起始頁是否大于文檔的總頁數(shù),如果大于發(fā)揮false,否則再繼續(xù)判斷用戶輸入法人結(jié)束頁是否大于文檔的中頁數(shù),如果大于返回false。

5 轉(zhuǎn)換效率分析

5.1 自動轉(zhuǎn)換效率分析

為了知道自動轉(zhuǎn)換效率,做了一個轉(zhuǎn)換測試,給定一個800多KB的包含有比較復(fù)雜的word像是的文件,來通過此程序進(jìn)行轉(zhuǎn)換測試,分別采集了10次轉(zhuǎn)換,50次轉(zhuǎn)換,和100次轉(zhuǎn)換的數(shù)據(jù)如下表。

經(jīng)過測試時發(fā)現(xiàn)轉(zhuǎn)換一份800多kb的有復(fù)雜格式和圖片的word文件,所需的時間穩(wěn)定在3s左右,建議使用時分析師在上傳后立即轉(zhuǎn)換,用戶在查看是就可以直接查看pdf文件,符合系統(tǒng)的需要。

5.2 手動轉(zhuǎn)換效率分析

為了知道手動轉(zhuǎn)換的效率,分別做了10次轉(zhuǎn)換,50次轉(zhuǎn)換和100次轉(zhuǎn)換的測試并采集到其數(shù)據(jù)如表4。

由這些數(shù)據(jù)可以看出,轉(zhuǎn)換效率穩(wěn)定保持在2.7秒左右符合系統(tǒng)的需要。

6 實際轉(zhuǎn)化控制

在項目中因為使用的是預(yù)覽模式,所以在系統(tǒng)中需要使用手動轉(zhuǎn)換,即控制轉(zhuǎn)換的頁數(shù),只轉(zhuǎn)換為客戶一部分預(yù)覽,如果客戶需要查看全部,則可付費后直接下載word文檔。

但是由于word文檔轉(zhuǎn)pdf文檔需要耗費大量的硬件資源所以在實際應(yīng)用中不得不做好以下幾點:

1) 由于word文檔轉(zhuǎn)pdf文檔需要消耗大量硬件資源,建議提高硬件配置。

2) 如果多人同時預(yù)覽,用戶的等待時間就比較長,建議在分析師上傳word文件就立即轉(zhuǎn)換,留出足夠的轉(zhuǎn)換時間。

3) 做好文件轉(zhuǎn)換后的文件資源釋放和word線程管理,防止轉(zhuǎn)換效率變低。

7 結(jié)束語

本文提出的采用基于C#語言的實現(xiàn)word文檔轉(zhuǎn)pdf文檔的設(shè)計,解決了word文檔的內(nèi)容在網(wǎng)頁預(yù)覽,而且還保留了word文檔的樣式,有利于網(wǎng)頁在線瀏覽資料的發(fā)展,而且會節(jié)省用戶大量的時間和金錢,具有很大的社會價值。

參考文獻(xiàn):

[1] 微軟開發(fā)者文檔[EB/OL]. (2017-11-10). https://msdn.microsoft.com/library/microsoft.office.tools.word.document.exportasfixedformat(v=vs.100).aspx.

[2] karli Watson. Christian Nagel C#入門經(jīng)典[M]. 北京: 清華大學(xué)出版社, 2006.

[3] RB Whitaker The C# Player's Guide[Z]. Starbound Software, 2012.

猜你喜歡
語言
詩之新,以語言創(chuàng)造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
(n,k)-語言及左-(n,k)-語言的一些性質(zhì)
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態(tài)分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
汽车| 尼木县| 霍州市| 汉沽区| 陇南市| 若尔盖县| 滁州市| 盐边县| 集安市| 剑河县| 扎兰屯市| 万安县| 崇仁县| 开封市| 社旗县| 分宜县| 抚松县| 万荣县| 浮山县| 嘉峪关市| 旬邑县| 乐都县| 肇庆市| 夏津县| 历史| 红安县| 肥乡县| 正安县| 孟津县| 乌鲁木齐县| 双桥区| 鹤岗市| 长顺县| 于田县| 东乌珠穆沁旗| 莱阳市| 商水县| 青州市| 启东市| 晋城| 安国市|