Word文檔轉PDF方法探索

最近的項目中須要將Word轉換爲PDF文件,找了不少方法和組件,最後找到了一些方法,和你們分享。
1、使用微軟官方自帶轉換方法
好處是寫法方便,官方支持,缺點是須要在服務器上安裝office,並且要配置COM組件的調用,至關麻煩;感興趣的能夠查一查並配置,代碼以下;git

public void WordToPDF()
        {
            string pathAndName = "D:/test/test.docx";
            Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document document = null;
            try
            {
                    string wordname = pathAndName + ".docx";                  
                    application.Visible = false;
                    document = application.Documents.Open(wordname);
                    string pdfPath = pathAndName.Replace(".docx", ".pdf"); //pdf存放位置
                    if (!System.IO.File.Exists(pdfPath)) //存在PDF,不須要繼續轉換
                    {
                        document.ExportAsFixedFormat(pdfPath,
                            Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
                    }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new Exception("word轉換失敗");
            }
            finally
            {
                document.Close();
            }       
        }

2、使用免費的Spire.Doc組件來轉換
Spire.Doc有免費的版本和收費的版本,免費的版本能夠轉換3頁的word到pdf,收費的沒有使用過;可是使用轉換後效果不是很好,和word文檔有一些出入,好比word有有下劃線沒寫入內容,轉換後下劃線不見了等問題,遂放棄了該組件;
代碼以下:github

public void wordToPdfWithSpireDoc(string filePath,string wordName,string pdfName)
        {
            try
            {
                Document doc = new Document();
                doc.LoadFromFile(filePath+wordName);
                doc.SaveToFile(filePath + pdfName, FileFormat.PDF);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
          
        }

3、使用Aspose.Words組件
Aspose.Words是一個商業組件,咱們能夠使用破解版等;有點轉換方便快捷,並且轉換效果與word相比,幾乎無差異;服務器

if (File.Exists(exportPath + wordName))
                {
                    Document doc = new Document(exportPath + wordName);
                    doc.Save(exportPath + pdfName, Aspose.Words.SaveFormat.Pdf);
                }

4、總結
word模板導出方法,找到了開源的Xceed.docx,用起來還不錯;
Excel模板導出方法,找到了開源的ExcelReport,git地址 https://github.com/hanzhaoxin/ExcelReport
還有wps轉換word等方法,就不一一列舉,在網上也找了好久,組件不少,合適且免費的相對較少,你們有好的方法和組件也能夠相互交流。app

相關文章
相關標籤/搜索