資源描述:
《將word文檔轉(zhuǎn)換成pdf格式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、將WORD文檔轉(zhuǎn)換成PDF格式前言:由于一個客戶的項目中需要將WORD文檔轉(zhuǎn)換成PDF格式,故寫了本篇實站教程需求分析:客戶的項目以B/S結(jié)構(gòu)為主,提供一個WORD文件在后臺自動轉(zhuǎn)換成PDF,經(jīng)過實際測試,如果該篇WORD文檔有100多頁的話,轉(zhuǎn)換需要20分鐘左右的時間(環(huán)境:CPU是奔騰M1.6G,512M內(nèi)存),整個CPU的占用率近乎95%~100%,此結(jié)果告訴客戶以后,客戶提議:到客戶下班后,自動轉(zhuǎn)換PDF,同時如果使用人確認(rèn)要查看該PDF文檔,如果沒有轉(zhuǎn)換,提供給客戶選擇,是現(xiàn)在轉(zhuǎn)換成PDF,還是由服務(wù)器在客戶下班后,自動轉(zhuǎn)換。項目功能:按需求分析要寫
2、兩個功能第一為:B/S結(jié)構(gòu)后臺轉(zhuǎn)換,要提交給客戶選擇第二為:Windows服務(wù)自動轉(zhuǎn)換WORD文檔到PDF這兩個分類:核心的轉(zhuǎn)換程序都是采用線程的方式執(zhí)行,只不過第一個功能是針對一個WORD文件,第二個功能針對所有未轉(zhuǎn)換的WORD文檔.分析到現(xiàn)在:我們開始實戰(zhàn)轉(zhuǎn)換了!一:必備工具安裝必須的工具M(jìn)SVS.Net2003,MSOffice2003,AdobeAcrobat7.0Professional,postscript.exe,gs811w32.exeMSVS.Net2003的安裝不說明MSOffice2003的安裝不說明AdobeAcrobat7.0Prof
3、essional安裝說明運行setup.exe文件,出現(xiàn)輸入序列號,就運行注冊機(jī),用鼠標(biāo)在第一行刷下就可以看見序列號,復(fù)制粘貼到AdobeAcrobat7.0Professional安裝程序?qū)υ捒?,安裝到最后出現(xiàn)注冊時,點擊PHONE...將安裝程序中顯示的第二行序列號(第一行是剛才注冊機(jī)生成的序列號)復(fù)制粘貼到注冊機(jī)的第二行,點擊右邊的按鈕,再用鼠標(biāo)刷第三行授權(quán)號就出來了,將其復(fù)制粘貼到安裝程序的最后一行,完成安裝注冊!postscript.exe默認(rèn)安裝就可以了,它是一個PDF轉(zhuǎn)換時所需要的腳本gs811w32.exe默認(rèn)安裝就可以,它其實是個PDF虛擬打
4、印機(jī)的驅(qū)動二:配置虛擬打印機(jī)進(jìn)入Windows的控制面板,進(jìn)入打印機(jī),點擊"添加打印機(jī)"圖標(biāo).在安裝對話框上"按一步",出現(xiàn)選擇打印機(jī)時,在制造商一欄中選擇"Generic",在打印機(jī)一欄中,選擇"MSPublisherColorPrinter",然后一路按下一步,知道安裝結(jié)束.三:開始寫第一個程序(腳本程序)為什么要使用腳本程序進(jìn)行轉(zhuǎn)換呢,其實實際測試過程中,使用PDFDistiller的對象引用到C#后,轉(zhuǎn)換成功,但整個PDFDistiller對象不能釋放,第二次再轉(zhuǎn)換時,就發(fā)生了錯誤,故此處使用腳本程序?qū)崿F(xiàn)轉(zhuǎn)換.這樣我們只要在C#的程序中調(diào)用腳本程序就可
5、以實現(xiàn)WORD到PDF的轉(zhuǎn)換。宿主腳本文件名:ConvertDoc2PDF.js腳本文件內(nèi)容:varfiles=WScript.Arguments;varfso=newActiveXObject("Scripting.FileSystemObject");varword=newActiveXObject("Word.Application");varPDF=newActiveXObject("PDFDistiller.PDFDistiller.1");word.ActivePrinter="MSPublisherColorPrinter";//files(0)
6、為WORD文檔文件名//files(1)為,轉(zhuǎn)換后需要保存的路徑//調(diào)用fso.GetBaseName(files(0))后,為無路徑,無擴(kuò)展名,的文件名//files.length為文件參數(shù)的個數(shù),使用循環(huán)可以支持多個WORD文檔的轉(zhuǎn)換vardocfile=files(0);varpsfile=files(1)+fso.GetBaseName(files(0))+".ps";varpdffile=files(1)+fso.GetBaseName(files(0))+".pdf";varlogfile=files(1)+fso.GetBaseName(file
7、s(0))+".log";try{vardoc=word.Documents.Open(docfile);//WORD文件轉(zhuǎn)成PS文件;word.PrintOut(false,false,0,psfile);doc.Close(0);//PS文件轉(zhuǎn)成PDF文件;PDF.FileToPDF(psfile,pdffile,"");fso.GetFile(psfile).Delete();//刪除PS腳本文件fso.GetFile(logfile).Delete();//刪除轉(zhuǎn)換的日志文件word.Quit();WScript.Echo("isuccess");//
8、成功WScript.Quit(0);}