PDF管理控件Aspose.PDF for .Net使用教程(二十四):將HTML和Web Page轉(zhuǎn)換為PDF
Aspose.PDF for .NET是一種高PDF處理和解析API,用于在跨平臺應(yīng)用程序中執(zhí)行文檔管理和操作任務(wù)。API可以輕松用于生成、修改、轉(zhuǎn)換、渲染、保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,API還提供PDF壓縮選項,表格創(chuàng)建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務(wù),擴展的安全控制和自定義字體處理。
在接下來的系列教程中,將為開發(fā)者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉(zhuǎn)換,如何標記PDF文件,如何使用表單和圖表等等。本文將介紹如何將HTML和Web Page轉(zhuǎn)換為PDF。
>>Aspose.PDF for .NET更新至最新版v19.12,歡迎下載體驗。
▲C#中將HTML轉(zhuǎn)換為PDF格式
用于.NET的Aspose.PDF可以將HTML頁面轉(zhuǎn)換為PDF格式,并在轉(zhuǎn)換過程中具有“資源加載回調(diào)”功能。當在不訪問本地文件系統(tǒng)的情況下將外部資源加載到云服務(wù)中時,此功能很有用。
為了完成此功能,將 CustomLoaderOfExternalResources 屬性添加到了 HtmlSaveOptions 對象中。以下代碼段將HTML中引用的圖片替換為預(yù)定義的圖片。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion(); HtmlLoadOptions options = new HtmlLoadOptions(); options.CustomLoaderOfExternalResources = new LoadOptions.ResourceLoadingStrategy(SamePictureLoader); Document pdfDocument = new Document(dataDir + "HTMLToPDF.html", options); pdfDocument.Save("HTMLToPDF_out.pdf");
// For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.PDF-for-.NET private static LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI) { string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion(); byte[] resultBytes = File.ReadAllBytes(dataDir + "aspose-logo.jpg"); LoadOptions.ResourceLoadingResult result = new LoadOptions.ResourceLoadingResult(resultBytes); return result; }
12月即將走過!Aspose.Total10000元直降活動即將落下帷幕!趕緊聯(lián)系慧都客服1分鐘了解全部資訊!
▲將Web Page轉(zhuǎn)換為PDF
HtmlLoadOptions 選項提供的功能,負載HTML內(nèi)容并解析HTML標簽據(jù)此,使它們產(chǎn)生的PDF中分別呈現(xiàn)。為了將網(wǎng)頁內(nèi)容轉(zhuǎn)換為PDF格式,首先可以使用WebRequest 實例獲取HTML頁面內(nèi)容,創(chuàng)建StreamReader對象并讀取頁面內(nèi)容。最后,將內(nèi)容傳遞給Document對象,并以PDF格式呈現(xiàn)輸出。
將網(wǎng)絡(luò)服務(wù)器上托管的網(wǎng)頁轉(zhuǎn)換為PDF時:
使用HttpWebRequest 對象讀取頁面的內(nèi)容 。
將內(nèi)容傳遞給 StreamReader 對象。
創(chuàng)建的實例 MemoryStream。
HtmlLoadOptions 在傳遞網(wǎng)頁URL時實例化該 對象。
Document 在傳遞流對象時初始化一個 對象。
(可選)將頁面方向設(shè)置為, Landscape 以便可以在頁面上容納更多內(nèi)容。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion(); // Create a request for the URL. WebRequest request = WebRequest.Create("https:// En.wikipedia.org/wiki/Main_Page"); // If required by the server, set the credentials. request.Credentials = CredentialCache.DefaultCredentials; // Time out in miliseconds before the request times out // Request.Timeout = 100; // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. string responseFromServer = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer)); HtmlLoadOptions options = new HtmlLoadOptions("https:// En.wikipedia.org/wiki/"); // Load HTML file Document pdfDocument = new Document(stream, options); options.PageInfo.IsLandscape = true; // Save output as PDF format pdfDocument.Save(dataDir + "WebPageToPDF_out.pdf");
還想要更多嗎?您可以點擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。