簡體   English   中英

是否可以僅使用免費軟件將文檔轉換為 PDF 或在 C# 中編輯 PDF?

[英]Is it at all possible to convert a document to PDF or edit a PDF in C# using only free software?

我有一個愚蠢的想法,即創建一個 .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

iTextSharp LGPL

這個不行,呵呵。 顯然,即使當你用谷歌搜索“將 rtf 轉換為 pdf”時,唯一出現的是 iText 及其衍生產品,它不會將 rtf 文檔轉換為 pdf 文檔。 我自己驗證了這一點(它只保存文本而不是格式),后來發現這篇文章讓我相信我沒有做錯什么。

嘗試 5

PDF -> PDF

由於將任何內容轉換為 PDF 似乎是不可能的,也許我可以將模板保存為 PDF 並對其進行文本替換。 不,大聲笑, 這顯然是一件非常困難的事情

嘗試 6

Pandoc (.odt/.docx -> pdf), (.rtf -> .pdf 不支持)

pandoc mockup2.odt -s -o mockup2.pdf

鏈接到圖片中的文件。 *注意,如果您嘗試將 .odt/.docx 轉換為 .tex,它會以同樣的方式搞砸。 在此處輸入圖像描述

我在這里做什么? 購買軟件以便我可以將文件保存為 PDF? 那是唯一的選擇嗎?

我有一個解決方案。 我並不是說這是最好的解決方案。 LibreOffice(或者如果您願意,可能是 OpenOffice)接受將執行切換的命令行參數。

soffice.exe --headless --convert-to pdf mockup.odt

*注意 - 這是在我將 libreoffice 添加到我的路徑( C:\Program Files\LibreOffice\program )之后。 我知道為什么它被稱為 soffice.exe 而不是 libreoffice.exe。

如果您堅持使用模板的 docx 文件,我可能會為您提供一個可行的解決方案。 我找到了一個免費的 docx 到 pdf 轉換的解決方案,而不使用 microsoft.interop 等: 請參閱此堆棧溢出帖子中的第一個答案

它使用兩個工具:open xml power tools 和 DinkToPdf(本質上是一個 wkhtmltopdf 包裝器)。 html 到 pdf 部分工作得很好,但是 docx 到 html 部分起初看起來像是一場災難。 您可以使用自定義 css 解決此問題(網上有一些資源)。

Powertools-.NetStandard

DinkToPdf-GitHub

專有軟件有更多可能性,例如 Asposes.Words 和 Syncfusion 文件格式。 大多數專有解決方案都非常昂貴......

如果您只是在安裝了 MS-Office 的 Windows 環境中工作,則可以使用 Microsoft.Interop。 這是迄今為止最簡單的解決方案(在這篇文章中,Interop 多次提到Stackoverflow Word to PDF

如果您找到另一個(更好的)工作解決方案,請告訴我。 我還沒有決定是使用專有解決方案還是免費解決方案。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM