自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET實(shí)現(xiàn)WORD文件自動(dòng)轉(zhuǎn)換PDF

開發(fā) 后端
本文介紹ASP.NET實(shí)現(xiàn)WORD文件自動(dòng)轉(zhuǎn)換PDF,以及介紹核心的轉(zhuǎn)換程序都是采用線程的方式執(zhí)行,只不過第一個(gè)功能是針對(duì)一個(gè)WORD文件,第二個(gè)功能針對(duì)所有未轉(zhuǎn)換的WORD文件。

需求分析:客戶的項(xiàng)目以B/S結(jié)構(gòu)為主,提供一個(gè)WORD文件在后臺(tái)自動(dòng)轉(zhuǎn)換PDF,經(jīng)過實(shí)際測(cè)試,如果該篇WORD文檔有100多頁(yè)的話,轉(zhuǎn)換需要20分鐘左右的時(shí)間(環(huán)境:CPU是奔騰M 1.6G,512M內(nèi)存),整個(gè)CPU的占用率近乎95%~100%,此結(jié)果告訴客戶以后,客戶提議:到客戶下班后,自動(dòng)轉(zhuǎn)換PDF,同時(shí)如果使用人確認(rèn)要查看該P(yáng)DF文檔,如果沒有轉(zhuǎn)換,提供給客戶選擇,是現(xiàn)在轉(zhuǎn)換PDF,還是由服務(wù)器在客戶下班后,自動(dòng)轉(zhuǎn)換。

項(xiàng)目功能:按需求分析要寫兩個(gè)功能
***為:B/S結(jié)構(gòu)后臺(tái)轉(zhuǎn)換,要提交給客戶選擇
第二為:Windows服務(wù)WORD文件自動(dòng)轉(zhuǎn)換PDF

這兩個(gè)分類:核心的轉(zhuǎn)換程序都是采用線程的方式執(zhí)行,只不過***個(gè)功能是針對(duì)一個(gè)WORD文件,第二個(gè)功能針對(duì)所有未轉(zhuǎn)換的WORD文件

分析到現(xiàn)在:我們開始實(shí)戰(zhàn)轉(zhuǎn)換了!

一:必備工具

安裝必須的工具M(jìn)S VS.Net2003,MS Office2003,Adobe Acrobat 7.0 Professional,postscript.exe,gs811w32.exe
◆MS VS.Net2003的安裝不說明
◆MS Office2003的安裝不說明
◆Adobe Acrobat 7.0 Professional安裝說明

運(yùn)行setup.exe文件,出現(xiàn)輸入序列號(hào),就運(yùn)行注冊(cè)機(jī),用鼠標(biāo)在***行刷下就可以看見序列號(hào),復(fù)制粘貼到Adobe Acrobat 7.0 Professional安裝程序?qū)υ捒?,安裝到***出現(xiàn)注冊(cè)時(shí),點(diǎn)擊PHONE...將安裝程序中顯示的第二行序列號(hào)(***行是剛才注冊(cè)機(jī)生成的序列號(hào))復(fù)制粘貼到注冊(cè)機(jī)的第二行,點(diǎn)擊右邊的按鈕,再用鼠標(biāo)刷第三行授權(quán)號(hào)就出來(lái)了,將其復(fù)制粘貼到安裝程序的***一行,完成安裝注冊(cè)!
◆postscript.exe默認(rèn)安裝就可以了,它是一個(gè)PDF轉(zhuǎn)換時(shí)所需要的腳本
◆gs811w32.exe默認(rèn)安裝就可以,它其實(shí)是個(gè)PDF虛擬打印機(jī)的驅(qū)動(dòng)

二:配置虛擬打印機(jī)

進(jìn)入Windows的控制面板,進(jìn)入打印機(jī),點(diǎn)擊"添加打印機(jī)"圖標(biāo).在安裝對(duì)話框上"按一步",出現(xiàn)選擇打印機(jī)時(shí),在制造商一欄中選擇"Generic",在打印機(jī)一欄中,選擇"MS Publisher Color Printer",然后一路按下一步,知道安裝結(jié)束.

三:開始寫***個(gè)程序(腳本程序)

為什么要使用腳本程序進(jìn)行轉(zhuǎn)換呢,其實(shí)實(shí)際測(cè)試過程中,使用PDF Distiller的對(duì)象引用到C#后,轉(zhuǎn)換成功,但整個(gè)PDF Distiller對(duì)象不能釋放,第二次再轉(zhuǎn)換時(shí),就發(fā)生了錯(cuò)誤,故此處使用腳本程序?qū)崿F(xiàn)轉(zhuǎn)換.這樣我們只要在C#的程序中調(diào)用腳本程序就可以實(shí)現(xiàn) WORD到PDF的轉(zhuǎn)換。

宿主腳本文件名:ConvertDoc2PDF.js

腳本文件內(nèi)容:

  1. var files = WScript.Arguments;  
  2. var fso = new ActiveXObject("Scripting.FileSystemObject");  
  3. var word = new ActiveXObject("Word.Application");  
  4. var PDF = new ActiveXObject("PDFDistiller.PDFDistiller.1");  
  5. word.ActivePrinter = "MS Publisher Color Printer";  
  6.  
  7. //files(0) 為WORD文檔文件名  
  8. //files(1) 為,轉(zhuǎn)換后需要保存的路徑  
  9. //調(diào)用fso.GetBaseName(files(0))后,為無(wú)路徑,無(wú)擴(kuò)展名,的文件名  
  10. //files.length為文件參數(shù)的個(gè)數(shù),使用循環(huán)可以支持多個(gè)WORD文檔的轉(zhuǎn)換  
  11.  
  12. var docfile = files(0);  
  13. var psfile = files(1) + fso.GetBaseName(files(0)) + ".ps";  
  14. var pdffile = files(1) + fso.GetBaseName(files(0)) + ".pdf";  
  15. var logfile = files(1) + fso.GetBaseName(files(0)) + ".log";  
  16.  
  17. try{  
  18. var doc = word.Documents.Open(docfile);  
  19. //WORD文件轉(zhuǎn)成PS文件;  
  20. word.PrintOut(false, false, 0, psfile);  
  21. doc.Close(0);  
  22.  
  23. //PS文件轉(zhuǎn)成PDF文件;  
  24. PDF.FileToPDF(psfile,pdffile,"");  
  25.  
  26. fso.GetFile(psfile).Delete();//刪除PS腳本文件  
  27. fso.GetFile(logfile).Delete();//刪除轉(zhuǎn)換的日志文件  
  28.  
  29. word.Quit();  
  30. WScript.Echo("isuccess");//成功  
  31. WScript.Quit(0);  
  32. }  
  33. catch(x)  
  34. {  
  35. word.Quit();  
  36. WScript.Echo("isfail");//失敗  
  37. WScript.Quit(0);  

然后測(cè)試該腳本程序

啟動(dòng)MS-DOS,輸入如下命令:c:\>cscript //nologo c:\ConvertDoc2PDF.js c:\test.doc c:\

說明:

運(yùn)行成功后將看到test.pdf文檔了
c:\test.doc參數(shù)對(duì)應(yīng)的是腳本程序中的files(0)
c:\參數(shù)對(duì)應(yīng)的是腳本程序中的files(1)

你可以安照該腳本改寫成,支持多個(gè)參數(shù),使用FOR循環(huán),一次轉(zhuǎn)換多個(gè)WORD文檔,此處沒有使用多個(gè)文件轉(zhuǎn)換功能,是考慮到,該段腳本放在C#的線程中執(zhí)行,這樣一來(lái)也可以轉(zhuǎn)換多個(gè)WORD文檔.

四:使用C#調(diào)用ConvertDoc2PDF.js腳本

新建一個(gè)C#的WINDOWS應(yīng)用程序,添加一個(gè)按鈕button1添加一個(gè)函數(shù),函數(shù)名StartConvertPDF

  1. publicvoidStartConvertPDF()  
  2. {  
  3. Processproc=newProcess();  
  4. proc.StartInfo.FileName="cmd.exe";  
  5. proc.StartInfo.WorkingDirectory=@"c:\";  
  6. proc.StartInfo.CreateNoWindow=true;  
  7. proc.StartInfo.UseShellExecute=false;  
  8. proc.StartInfo.RedirectStandardInput=true;//輸入重定向  
  9.  
  10. proc.Start();  
  11. proc.StandardInput.WriteLine(@"cscript//nologoc:\ConvertDoc2PDF.jsc:\test.docc:\");  
  12. proc.StandardInput.WriteLine("exit");  
  13. proc.WaitForExit();  

結(jié)束語(yǔ):

以上介紹ASP.NET實(shí)現(xiàn)WORD文件自動(dòng)轉(zhuǎn)換PDF,Adobe Acrobat 7.0 Professional,postscript.exe,gs811w32.exe這三個(gè)文件可以在itbaby.jss.cn下載,都包含在同一個(gè)RAR的壓縮文件中了。

itbaby.jss.cn是動(dòng)態(tài)域名,主機(jī)在作者家里,如果網(wǎng)站不能訪問,說明電腦沒有開,請(qǐng)稍后幾天再試。

【編輯推薦】

  1. 淺析ASP.NET的PageBase和MasterPage
  2. ASP.NET的XML Web服務(wù)方法
  3. 詳解部署ASP.NET環(huán)境
  4. 實(shí)現(xiàn)ASP.NET全球化
  5. 解決ASP.NET AJAX腳本的錯(cuò)誤問題
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-08-05 17:58:34

實(shí)現(xiàn)ASP.NET網(wǎng)站

2009-07-21 15:40:59

Asp.Net動(dòng)態(tài)頁(yè)面

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 17:45:35

ASP.NET教程

2009-08-04 14:56:34

ASP.NET數(shù)據(jù)類型

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-21 15:38:31

2009-08-10 17:17:10

ASP.NET安裝部署

2009-07-28 15:29:03

實(shí)現(xiàn)HTTP請(qǐng)求ASP.NET

2009-07-28 10:01:16

ASP.NET Exc

2009-07-20 15:44:32

ASP.NET MVC

2009-07-22 17:13:21

Asp.Net編程

2009-07-23 10:31:14

2009-07-22 17:45:11

ASP.NET插件

2009-08-05 18:10:09

ASP.NET Def

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 17:11:25

ASP.NET ISA

2009-07-23 16:16:59

ASP.net Con

2015-03-03 13:15:19

ASP.NET大文件下載實(shí)現(xiàn)思路
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)