用其他单词替换现有PDF或docx中的单词/短语

用其他单词替换现有PDF或docx中的单词/短语,pdf,.net-core,pdf-generation,libreoffice,google-chrome-headless,Pdf,.net Core,Pdf Generation,Libreoffice,Google Chrome Headless,我正在尝试制作一个动态PDF生成器作为.NET核心API。我想获取一个现有的PDF文件或.docx文件,并对其进行编辑,使其能够将当前名称(John Doe)替换为可以替换的内容,如#name_PLACEHOLDER 然后我想转换#NAME_PLACEHOLDER->John Doe(或者键值对或字典中的任何内容) 我在Docker环境中运行这个,所以我可以轻松地执行命令,我也愿意这样做 到目前为止,我已经尝试了一些方法: 1)pdf2htmlEX 执行为pdf2htmlEX file.pd

我正在尝试制作一个动态PDF生成器作为.NET核心API。我想获取一个现有的PDF文件或.docx文件,并对其进行编辑,使其能够将当前名称(John Doe)替换为可以替换的内容,如
#name_PLACEHOLDER

然后我想转换
#NAME_PLACEHOLDER->John Doe
(或者
键值对
字典
中的任何内容)

我在Docker环境中运行这个,所以我可以轻松地执行命令,我也愿意这样做

到目前为止,我已经尝试了一些方法:

  • 1)pdf2htmlEX
    • 执行为
      pdf2htmlEX file.pdf
    • 这工作做得很好吗
    • 可以使用Google Chrome headless或类似工具转换回PDF
    • 问题:只能使用PDF中使用的字符替换。因此,如果我只使用
      A、B、C
      作为字符,它会将
      D
      变成新罗马时代(或默认字体)
  • 2)图书馆办公室ODT至PDF
    • 这非常好,因为我可以简单地解压缩.odt文件,打开content.xml,搜索并替换,然后再次将其另存为.odt文件
    • 可以很容易地使用
      软件将其转换为PDF格式--转换为PDF格式
    • 图书馆很不错
    • 问题1:Microsoft Word->“另存为ODT”往往会破坏格式,因此我们必须使用LibreOffice再次进行更改
    • 问题2:我们不想离开微软的Office套件
  • 3)使用Chrome Headless将HTML转换为PDF
    • 你看到的就是你得到的
    • 到目前为止最好的选择,如果我们都是开发人员并且有无限的时间
    • 问题1:只有我们的开发人员可以进行更改,因为我们的营销部门不懂HTML
    • 问题2:我们现有的PDF必须用HTML重写
正如你所看到的,我已经尝试了很多东西。除了铬合金无头,没有一个能达到我的期望。我真正喜欢#3的是你所见即所得。基本上,我可以用HTML制作整个文档,按CTRL+P键,然后查看它作为完成的PDF的外观


不过,我正在寻找更好的解决方案。这是可以支付的。它可以是免费的。我所需要的只是动态地用其他单词替换单词/短语,这显然是一件很难做到的事情。

感谢您明确说明您已经找到的内容。它提供了一个简洁的答案,帮助很大

转换总是很棘手的-我相信您知道Word在显示/编辑某些Word文档时会遇到问题

我对第2点“LibreOffice ODT to PDF”有经验,可以提出一些测试建议:

  • 不要使用Microsoft进行docx->odt转换。你知道这不好。使用LibreOffice本身执行此步骤。您的流程的其余部分保持不变
  • 对于某些文档,Libre-Office做doc->odt要好得多。因此,您可以改为使用文档格式,在不进行任何其他更改的情况下获得更好的结果
  • 您将无法从流程中删除开发人员,但您肯定可以减少他们的角色,让您的业务/营销团队通过以下方式获得更直接的投入:

    • 将起始点文档发送给开发人员,以运行整个转换过程。开发人员可以“清理”文档,使其能够很好地转换
    • 将此版本的文件作为“官方”起点。业务或技术团队可以加载、调整并将其放回流程中
    • 如果可能,向业务团队公开一个测试平台,以便他们可以下载、调整、上传并呈现为PDF。这个周期意味着他们将能够实现更多,如果他们做得好,在没有任何开发人员投入的情况下做一些令人印象深刻的事情
    • 以上步骤仅仅意味着不要期望任意复杂文档的完美转换。从一个(甚至复杂的)工作基线开始是很好的
  • 其中一些可能会告诉你,你的#2实际上会获得最好的整体效果


    我希望这能有所帮助。

    “我所需要的是……这显然是一件很难做到的事情”,这几乎是对它的总结。@usr2564301除非我可以很容易地完成这整件事,如果我能找到一个好的docx-to-PDF转换器的话。然后我可以简单地编辑docx文件的内容(解压缩并再次压缩),然后将其转换为PDF。唯一的问题是:看起来,付费的选择权是每月1000美元以上。我愿意买终身许可证,但不是这个每月1000美元以上的废话。非常感谢你的投入!使用LibreOffice的一个问题是,业务团队不想离开Word。如果我们都使用LibreOffice,这将是一个无需思考的问题。你认为这样更好吗:1)用Word制作文档并另存为docx。2) 使用soffice命令将docx转换为odt。3) 编辑odt文件并保存它(全部可编程)。4) 使用soffice命令将odt转换为pdf。我们现在的替代方案是Acrobat+PDF表单输入,但是对于文档的每次迭代,我们需要编辑原始文档并再次插入所有输入。繁琐的过程,不客气。当然,如果您的团队习惯使用MS Office,那么他们应该坚持使用MS Office。所以“是”是我对你问题的回答。业务/开发人员始终使用MS Office文档,您的应用程序使用Libre Office将其转换为PDF。您可以在DOCX或ODT阶段执行编程操作—任何适合您的环境的操作。记住我答案3下的第一点。上面-让开发团队(你自己)创建DocX的第一个基线,因为你知道它可以通过Libre-Office很好地转换。所以我尝试使用
    soffice
    转换我的DocX->odt->pdf。它确实起作用了,看起来还不错,但它失败了