我正在開發基于 Unity3D 的應用程式,需要從 HTML 代碼生成 PDF。我嘗試了其他庫,但就我的目的而言,它們要么超級慢,要么過時,要么非常昂貴。因此,我正在考慮使用 Chrome 內置的 PrintToPDF 功能。
為了測驗,以下代碼可以生成 Google 主頁(或任何網站)的 PDF,但我需要將 HTML 字串轉換為 PDF。
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
string arguments = @"--headless --print-to-pdf=""C:\Users\userName\desktop\myReport.pdf"" https://google.com";
process.StartInfo.Arguments = arguments;
process.Start();
是否可以輸入帶有 HTML 代碼的字串或本地存盤的獨立 HTML 檔案以使用此方法轉換為 PDF?
謝謝!
uj5u.com熱心網友回復:
經過大量測驗,我發現我可以將路徑傳遞給它接受 Web URL 的 HTML 檔案。據我所知,這在任何地方都沒有記錄,但只要路徑格式正確,它就可以作業。這僅在 Windows (11) 上進行了測驗,但我相信它也適用于 MacOS,只要所有路徑都正確。
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
string arguments = @"--headless --disable-gpu --print-to-pdf=""C:\path\to\outputPDFFile.pdf"" ""C:\path\to\sourceHTMLFile.html""";
process.StartInfo.Arguments = arguments;
process.Start();
為了使它起作用,--headless
標志需要存在,否則它只會在您的瀏覽器中打開檔案。
可以使用其他引數添加其他輸出選項。有關示例,請參見此處。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/469523.html
標籤:C# html 谷歌浏览器 pdf生成 谷歌浏览器无头
上一篇:如何切換開關chrome擴展