簡體   English   中英

Word 互操作 SaveAs2 為 PDF

[英]Word Interop SaveAs2 as PDF

我正在嘗試將文件另存為 PDF。 我的原始代碼可以保存為 Word 文檔。

Imports Word = Microsoft.Office.Interop.Word
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim objDoc As Word.Document = objWordApp.Documents.Open(appPath & "\PackListTemplate.dotm", [ReadOnly]:=True)
        objDoc = objWordApp.ActiveDocument
        With objDoc

...

    .SaveAs2(FileName:=savepath & soNumber & "_" & localDateTimeFileName & ".doc", AddToRecentFiles:=True, ReadOnlyRecommended:=True)

這就是我試圖將代碼更改為...

.SaveAs2(savepath & "Packing Lists - " & soNumber & ".pdf", Word.WdSaveFormat.wdFormatPDF, AddToRecentFiles:=True, ReadOnlyRecommended:=True)

問題是彈出應用程序另存為對話框。 這並不理想,因為這應該是自動化的。 當我使用FileName:=一切都按我的預期工作。 但是當我在 PDF 保存中使用那個位時,由於某種原因它不喜歡我的Word.WdSaveFormat.wdFormatPDF 它強調WordW

我在這里錯過了什么?感謝任何幫助!

Interop 使用在安裝 MS Office 時注冊的 COM 庫。 只要您嘗試以編程方式操作文檔的機器安裝了 MS Office,這就會起作用。 更好的方法是使用一個工具包,即使沒有安裝 MS Office(例如在服務器上),它也可以合並模板文檔和數據。 您需要准備一個模板 Word 文檔,對其進行格式化並將占位符放置在其中您希望數據出現在最終文檔中的位置。 然后,您在 .NET 應用程序中准備數據並根據模板文檔和您的數據調用文檔生成。 生成的文檔可以保存為 docx、pdf 或 xps 文件,或以任何這些格式流式傳輸到客戶端。 如果您想了解更多信息,可以在此處查看一些示例。 最終只需要兩行代碼就可以得到最終的文檔:

// Instancing report engine, by assigning the data source
DocumentGenerator dg = new DocumentGenerator(DataAccess.GetOrderById(7)); 
// Generating report by specifying the report template and the resulting report (as file paths) 
dg.GenerateDocument("example.docx", "example_output.docx");

關閉文檔時使用:

.Close(Word.WdSaveOptions.wdDoNotSaveChanges);

它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM