序
CSharp, doc to pdf in ways, with microsft word, Spire or OpenOffice今次為大家分享下如何在 c# 將*.doc, *.docx轉移成*.pdf
事源就是工作需要,不然也不會四出查探。
可惜最後任何方案都沒有被接納,算了,就當是知道多些事情。
既然都做了那就不要浪費,整理一下,放上來,日後再查看也很方便
Example下載檔案
Download: c# - doc to pdf in 3 ways3 Projects
- CSharp-MSOffice-doc2pdf
- CSharp-Spire-doc2pdf-withPwd
- CSharp-OpenOffice-doc2pdf
c# - Microsoft word doc to pdf
首先,第一件事就想到Microsoft Word,不是宣傳。只是辦公室軟件那最平常不過,那麼大型的全球性企業,一個形影不離的關係(MSoffice <--> windows)。應該有些 API 什麼的,很順利真的找到了。
Microsoft.Office.Interop.Word - Version 11=2003
Microsoft.Office.Interop.Word - Version 12=2007
Microsoft.Office.Interop.Word - Version 14=2010
Microsoft.Office.Interop.Word - Version 15=2013
right click solution / project > add reference
它的原理是背後用MS word開啟你指定的doc再另存成pdf,如果你根本沒有安裝。一開始宣告便會出錯。
解決方法是安裝MS Word,好像在說廢話,但那是唯一辦法
c# - Spire doc to pdf
如果不想花錢在MSOffice,剛好聽見别人說Spire 今次真是好太多,不需額外安裝任何軟件。只需要在開發時參照幾個dll,執行放到同一目錄下即可。以上是將 importDoc.doc 輸出成 encryptedDoc.docx 並加入開啟密碼"doc"
之後又將 importDoc.doc 輸出成 exportPDF.pdf
最後讀取 importDoc.doc 輸出成 exportPDFwithPwd.pdf 並加入開啟密碼"654321"
哇!那正正是我想要的功能。而且程式碼十分簡短易明,開心一會很快明白到天下沒有免費的午餐,Spire只是免費試用,在付款前會加入一個醒目信息
因為 doc 轉 pdf 加了一句,為 pdf 加密又一句
所以有兩句很醒目︰此文件透過Spire轉換
除此之外Spire的授權更昂貴,以年為單位購買的
Evaluation Warning in Spire free trial
c# - OpenOffice doc to pdf
碰壁便調頭走,一向都是取易不取難的原則又找到個介符MSOffice, Spire兩者之間的東西
在雲端興起之前,MSOffice的潛在敵人是OpenOffice。打著open source的旗號一定會無私地奉送一個將doc轉換成pdf的方法。
有了清晰的下一步,GO! GO! GO~~~
OpenOffice有提供.NET Library,開發和執行的環境同樣需要5個dll。
第一句才是重點,其它照複製便可
不過今次需要安裝OpenOffice才能轉檔 ~_~
至少今次是免費的午餐。經過查找,OpenOffice同樣可以為 pdf 加密,而那是 Microsoft.Office.Interop.Word 不可以的。
不過該功能預設沒有載入,官方的說法︰加入密碼保護、指定輸出頁面範圍……那些都是沒有意義的啊
如果想為pdf加密,官方沒有為c#提供具體方法,java才有提供實例。
總結一下
想說的是COPY+PASE有點累人,太長篇要你等了。整理一下你該如何選擇那種轉換方法Mircrosoft Word | Spire | OpenOffice | |
$ |
|
|
OpenOffice and OpenOffice SDK are free |
Development Environment | reference external dll(1), inside your visual studio | dll(5), need not install if you have those dll | dll(5), need not install if you have those dll |
PDF convertion(import type) | doc, docx | Doc/Docx to XML, RTF, EMF, TXT, XPS, EPUB, HTML and vice versa | DOC, DOCX, XLS, XLSX, PPT, PPTX... |
PDF Encryption | N | Yes | Yes on Java |
除了以上方法,商用軟件比較常採納的方法是透過pdf virtual printer。那個有機會下次再詳述。
Exception
以下是一些你可能也會遇到的問題,以及解決方法
====================================================================
Reference︰
- Microsoft Word
- How do I convert Word files to PDF programmatically?
- Saving Word 2007 Documents to PDF and XPS Formats
- Spire
- Spire.Doc Program Guide
- Spire.PDF Program Guide
- OpenOffice
- Download OpenOffice and SDK: both Current version 4.0.1
- Official: API/Tutorials/PDF export
- Munim: Convert office documents to PDF using Open Office in C#
No comments:
Post a Comment