【问题标题】:Word Interop SaveAs2 as PDFWord 互操作 SaveAs2 为 PDF
【发布时间】:2017-02-08 14:20:45
【问题描述】:

我正在尝试将文件另存为 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。它强调了Word 中的W

我在这里缺少什么?任何帮助表示赞赏!

【问题讨论】:

  • 当我从 with 语句中分解代码时,问题随之而来... objDoc.WdSaveFormat.wdFormatPDF objDoc 中的 o 显示红色下划线,错误为“预期命名参数”
  • 最终将其声明为 Word.WdSaveFormat.wdFormatPDF 并使用 close(false)。出于某种原因,当我关闭模板时,我不需要指定我不想保存,当我生成一个 doc 类型文件时。

标签: .net vb.net pdf office-interop


【解决方案1】:

Interop 使用在安装 MS Office 时注册的 COM 库。只要您尝试以编程方式操作文档的机器安装了 MS Office,这将起作用。更好的方法是使用即使没有安装 MS Office(例如在服务器上)也可以合并模板文档和数据的工具包。您需要准备一个模板 Word 文档,对其进行格式化并在其中放置您希望数据出现在最终文档中的占位符。然后,您在 .NET 应用程序中准备数据并根据模板文档和您的数据调用文档生成。生成的文档可以保存为 docx、pdf 或 xps 文件或以任何这些格式流式传输到客户端。如果您想了解更多信息,可以查看一些示例 here。最终只需要两行代码就可以得到最终的文档:

// 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");

【讨论】:

    【解决方案2】:

    关闭文档时使用:

    .Close(Word.WdSaveOptions.wdDoNotSaveChanges);
    

    它对我有用。

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多