我有一个愚蠢的想法,将模板创建为.docx或.rtf或.pdf,然后替换该文档中的文本以生成报告。这似乎比使用付费报告软件更好。
好吧,我相信我现在已经尝试了几乎所有内容,而对使用pdf进行任何操作的可能性感到惊讶。
尝试1
HTML-> PDF
设计模板要困难得多。打印时看起来不一样。从来没有在命令行示例之外运行过它(不确定iTextSharp-LGPL的性能如何,或者它是否可以处理base64字符串,因为我不确定您还将如何谈论图像)。无论如何,以这种方式进行操作会使模板设计变得非常困难。
尝试2
OpenXml-> PDF
我愚蠢地认为,因为Word可以保存为OpenXml可以保存的PDF。我错了。它不能另存为PDF。
尝试3
OpenOffice / LibreOffice(docX-> PDF)
它无法读取OpenXml,这是一个问题,因为我将模板编辑为OpenXml,然后将结果保存为.docx,但无法读取该保存的文档。
尝试4
这只是行不通,大声笑。显然,即使当您将Google“将rtf转换为pdf”时,出现的唯一内容就是iText及其派生工具,它不会将rtf文档转换为pdf文档。我亲自验证了这一点(它只保存文本,不保存格式),后来发现this贴子说服我我没有做错什么。
尝试5
PDF-> PDF
由于将任何内容转换为PDF似乎都是不可能的,也许我可以将模板另存为PDF,然后在其上进行文本替换。不,哈哈,that is apparently a very difficult thing to do。
尝试6
Pandoc(.odt / .docx-> pdf),(不支持.rtf-> .pdf)
pandoc mockup2.odt -s -o mockup2.pdf
link到图片中的文件。 *请注意,如果您尝试将.odt / .docx转换为.tex,则会以相同的方式弄乱。
我在这里做什么?购买软件,以便我可以将文件另存为PDF?那是唯一的选择吗?
答案 0 :(得分:1)
我有解决办法。我并不是说这是最好的解决方案。 LibreOffice(如果愿意的话,也可以使用OpenOffice)接受将进行切换的命令行参数。
soffice.exe --headless --convert-to pdf mockup.odt
*注意-这是在我将libreoffice添加到路径(C:\Program Files\LibreOffice\program
)之后的。 idk为什么叫soffice.exe而不是libreoffice.exe。
答案 1 :(得分:0)
如果您坚持使用模板的docx文件,那么我可能会为您提供可行的解决方案。 我找到了一个免费的docx到pdf转换的免费解决方案,而无需使用microsoft.interop等:See first answer in this stack overflow post
它使用两个工具:开放的xml强大工具和DinkToPdf(实际上是wkhtmltopdf包装器)。从html到pdf的部分工作正常,但从docx到html的部分乍一看就像一场灾难。您可以使用自定义CSS解决此问题(在线上有一些资源)。
专有软件有更多可能性,例如Asposes.Words和Syncfusion文件格式。大多数专有解决方案都非常昂贵...
如果仅在安装了MS-Office的Windows环境中工作,则可以使用Microsoft.Interop。到目前为止,这是最简单的解决方案(在这篇文章中,多次提到Interop Stackoverflow Word to PDF
如果您找到了另一个(更好)的解决方案,请告诉我。我还不确定我将使用专有软件还是免费软件。 :-)