【发布时间】:2018-04-11 10:45:39
【问题描述】:
我正在尝试将动态 PDF 生成器作为 .NET Core API。我想获取现有的 PDF 或 .docx 文件并对其进行编辑,以便将当前名称 (John Doe) 替换为可以替换的名称,例如 #NAME_PLACEHOLDER。
然后我想转换#NAME_PLACEHOLDER -> John Doe(或KeyValuePair 或Dictionary<string, string> 中的任何内容)。
我在 Docker 环境中运行它,所以我可以轻松执行命令,我也愿意这样做。
到目前为止,我已经尝试了一些事情:
-
1) pdf2htmlEX
- 以
pdf2htmlEX file.pdf执行 - 做得很好
- 可以使用 Google Chrome 无头或类似工具转换回 PDF
- 问题:只有PDF中使用的字符可以用来替换。所以如果我只使用
A, B, C作为字符,它会将D变成Times New Roman(或默认字体)
- 以
-
2) LibreOffice ODT 转 PDF
- 这很好,因为我可以简单地解压缩 .odt 文件,打开 content.xml,搜索并替换,然后再次将其保存为 .odt 文件
- 可以使用
soffice --convert-to pdf轻松转换为 PDF - LibreOffice 很不错
- 问题 1:Microsoft Word -> 另存为 ODT 往往会破坏格式,因此我们必须使用 LibreOffice 将其重新改回
- 问题 2:我们不想放弃 Microsoft 的 Office 套件
-
3) 使用 Chrome Headless 将 HTML 转为 PDF
- 所见即所得
- 目前为止最好的选择,如果我们都是开发人员 aa 并且有无限的时间
- 问题 1:只有我们的开发人员可以进行更改,因为我们的营销部门不懂 HTML
- 问题 2:我们现有的 PDF 必须用 HTML 重写
如您所见,我已经尝试了很多方法。除了 Chrome Headless,它们都没有达到我的期望。我真正喜欢#3 的是所见即所得。我可以在 HTML 中制作整个内容,按 CTRL+P 并查看它作为完成的 PDF 的样子,基本上。
不过,我正在寻找更好的解决方案。它可以支付。它可以是免费的。我所需要的只是动态地用其他词改变单词/短语,这显然是一件很难做到的事情。
【问题讨论】:
-
“我所需要的只是……这显然是一件很难做到的事情”,这几乎可以概括。
-
@usr2564301 如果我能找到一个好的 docx 到 PDF 转换器,我可以轻松地完成这一切。然后我可以简单地编辑 docx 文件的内容(解压缩并再次压缩),然后将其转换为 PDF。唯一的问题是:看起来,付费选项实际上是每月 1000 美元以上。我愿意购买终身许可证,但不是每月 1000 美元以上的废话。
标签: pdf .net-core pdf-generation libreoffice google-chrome-headless