DOCX 转 PDF...具有自定义文档属性

DOCX 转 PDF...具有自定义文档属性

结论: 如何将 DOC(X) 转换为 PDF 并保留 CustomDocumentProperties和字段 - 这样我就可以通过编程更新自定义属性和通过 Windows 服务打印 PDF

!TLDR

我们有一个自定义的内部应用程序,它将 DOCX 创建与字段更新和打印配对。该应用程序本身是一个基于 Windows 窗体的程序,可以运行,但需要从用户 shell 运行。我想升级此程序以从 Windows 服务运行。

Windows 服务中的 DOCX 问题在于打印。必须在服务器上安装 Word。Word 在用户 shell 之外无法正常播放 - 模式对话框、用户提示(是否要恢复其中一个?是否要启用对此文档的编辑?等等)、所需的注册表项等。

我正在探索调整我们的工作流程以适应服务器上的 PDF。

工作流

DOC(X) 准备/创建(手动,不在程序中):

  • 导入/运行 VBScript:
    • 从数据库中获取表/视图列。
    • 每列都进入一个自定义文档属性。
  • 将字段放入文档中以获得所需的自定义属性。

因此CustomerName,,,AddressLine1City被添加为 CustomDocumentProperties……然后字段被放置在表单上的正确位置,以便在自动化程序中自动打印。

DOCX 使用(自动,在程序中):

  • 从同一张表中提取行
  • 将正确的数据放入每个 CustomDocumentPropertyField 中
  • 更新字段(替换CustomerNameDoe, John、替换CityWhoville等)
  • 将文档打印到正确的打印机

期望的改变

我正在寻找

a. 将 DOC(X) 转换为 PDF,这样自定义属性的传输以及替换字段的能力就保持不变。 将是 1) 创建 DOCX(目前存在许多此类文件,并且是当前的工作流程),2) 转换为 PDF,3) 更新/打印 PDF。 优点:继续使用客户满意/受过培训的 Word 产品。 缺点:中间可能需要复杂的 docx/pdf 转换,以换取在 Windows 服务内更轻松的 PDF 打印。

b. 完全取代 DOC(X),改用 PDF 创建工具。优点:相同的两步流程。缺点:用户习惯于 DOC(X) 创建。可能需要额外的软件/培训。许多文档需要转换。

c. 将 DOCX 作为一种服务来处理,并在服务内部进行打印。

这个问题正在探索a- DOC(X) conversion to PDF。给定一个 Word 文档,文档上放置了自定义文档属性和字段...当我通过Save As PDFWord 转换为 PDF 时,我似乎丢失了这些属性,并且字段被替换为当前值。还有哪些其他可行的选项可以转换为 PDF - 保留该信息以供步骤使用2) DOCX Usage/Printing

答案1

使用pdfsharp,它是一个开源库。您可以像这样设置pdf的自定义属性:

PdfDocument document = PdfReader.Open("c:\\Test.pdf"); 
document.Info.Elements.Add(
     new KeyValuePair<String, PdfItem>("/MyKey", new PdfString("MyValue")));
document.Save("c:\\test.pdf");

相关内容