
De [PDF][2] (Portable Document Format) is een van de veelgebruikte documentindelingen voor het delen van gegevens en informatie over verschillende platforms. Een van de unieke mogelijkheden is dat de getrouwheid van een document intact blijft bij weergave op elk platform dat de applicatie gebruikt volgens de Adobe-specificaties. Bovendien is de [HTML][3] (HyperText Markup Language) ook een toonaangevend bestandsformaat voor het ontwikkelen van webpagina’s en de meeste webbrowsers ondersteunen dit formaat. PDF wordt echter algemeen geaccepteerd omdat het gemakkelijk op elk apparaat kan worden bekeken zonder de documentopmaak te verliezen. Daarom gaan we in dit artikel stappen bespreken voor het converteren van het [HTML][3]-bestand naar [PDF][2]-indeling met behulp van .NET API.
- [C# API om HTML naar PDF te converteren][4]
- [HTML converteren naar PDF in C#][5]
- [Lettertypen insluiten tijdens conversie][6]
- [Converteer webpagina’s naar PDF][7]
- [Geef volledige HTML weer op één pagina][8]
C# API om HTML naar PDF te converteren
Om de conversiebewerking uit te voeren, moeten we eerst [Aspose.PDF voor .NET][9] op het systeem installeren. De API is beschikbaar in de [NuGet][10]-bibliotheek. Voer de volgende opdracht uit op de Package Manager-console om deze te installeren:
Install-Package Aspose.Pdf
Zodra de installatie is voltooid, verschijnt de Aspose.PDF voor .NET onder de map Pakketten in de oplossingsverkenner.
Converteer HTML naar PDF in C#
Hieronder vindt u de stappen voor het converteren van HTML naar PDF met C#
- Maak een instantie van de klasse License om eventuele beperkingen tijdens het genereren van PDF-bestanden op te heffen.
- Maak een object van de klasse HtmlLoadOptions terwijl u de ingevoerde HTML-basis-URL als argument doorgeeft aan [HtmlLoadOptions(…)](https ://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) constructeur.
- Initialiseer het object van de klasse Document en geef [HtmlLoadOptions](https://apireference.aspose.com/pdf/net/ door) aspose.pdf/htmlloadoptions)-object als een argument voor de constructor.
- Roep de methode Opslaan(…) van het documentobject aan en geef de uitvoer weer in PDF-indeling.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// create an object to initiate the license Aspose.Pdf.License license = new Aspose.Pdf.License(); // provide path of license file license.SetLicense("/Downloads/Conholdate.Total.NET.lic"); // create an instance of HtmlLoadOptions class Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/"); // create Document object and provide input HTML file path Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions); // save the resultant HTML to PDF format document.Save("/Documents/Converted.pdf");
Sluit lettertypen in tijdens de conversie
De meeste HTML-pagina’s gebruiken vaak lettertypen (bijv. lettertypen uit lokale mappen, Google Fonts, enz.) en om de lay-out van de pagina’s te behouden, worden dezelfde lettertypen ingesloten tijdens het weergaveproces. Dus om het insluiten van lettertypen in het resulterende document te regelen, moeten we de eigenschap [IsEmbedFonts][11] gebruiken.
// Embed fonts during conversion | |
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true}; |
// Set Page size as A3 and page orientation as Landscape | |
HtmlLoadOptions options = new HtmlLoadOptions(url) | |
{ | |
PageInfo = {Width = 842, Height = 1191, IsLandscape = true} | |
}; |
Converteer webpagina naar PDF
Afgezien van de conversie van HTML-bestanden, kunnen we ook een vereiste hebben om een webpagina rechtstreeks naar PDF-formaat te converteren. Dus om aan deze vereiste te voldoen, zullen we eerst de inhoud van de externe webpagina ophalen met behulp van de HttpClient-instantie, een Stream-object maken en vervolgens de Stream-instantie doorgeven aan het Document-object. De reden dat we de inhoud in Stream nodig hebben, is dat de Document-instantie alleen bestanden of Steam-objecten accepteert. In het volgende gedeelte worden de stappen uitgelegd voor het converteren van een webpagina naar PDF met C#
- Lees de inhoud van de pagina met behulp van een [HttpClient][12]-object.
- Instantiseer het [HtmlLoadOptions][13]-object en stel de basis-URL in.
- Initialiseer een [Document][14]-object en geef het stream-object en de [HtmlLoadOptions][13]-instantie door als argumenten.
- Roep de methode [Save(String)][15] aan vanuit de klasse Document om de uitvoer te genereren.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
public static void ConvertHTMLtoPDFAdvanced_WebPage() { const string url = "https://en.wikipedia.org/wiki/Aspose_API"; // Set page size A3 and Landscape orientation; HtmlLoadOptions options = new HtmlLoadOptions(url) { // Set the page dimensions PageInfo = {Width = 842, Height = 1191, IsLandscape = true} }; // Create an instance of Document object Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options); // Save the resultant pdfDocument.Save(_dataDir + "html_test.PDF"); } private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null) { using (var handler = new HttpClientHandler { Credentials = credentials }) using (var httpClient = new HttpClient(handler)) { // fetch and return results in stream instance return httpClient.GetStreamAsync(url).GetAwaiter().GetResult(); } }
Geef complete HTML weer op één pagina
Tijdens de conversie van HTML naar PDF is de lengte van het resulterende bestand in overeenstemming met de inhoudslengte van een invoer-HTML-document. Als de invoer-HTML dus uit meerdere pagina’s bestaat, zal het resulterende bestand ook meerdere pagina’s beslaan. We kunnen de uitvoer echter beperken tot een enkele PDF-pagina. Om aan deze vereiste te voldoen, kan de eigenschap [IsRenderToSinglePage][16] van de klasse HtmlLoadOptions worden gebruikt. Hieronder vindt u het codefragment voor het weergeven van de volledige HTML-inhoud op een enkele PDF-pagina met behulp van C#.
// For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.PDF-for-.NET | |
// Initialize the HtmlLoadOptions object | |
HtmlLoadOptions options = new HtmlLoadOptions(); | |
// Set render to single page property | |
options.IsRenderToSinglePage = true; | |
// Load document source HTML content | |
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options); | |
// Save the resultant PDF file | |
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf"); |
Ontvang een gratis licentie
U kunt een gratis tijdelijke licentie aanvragen om de API te proberen zonder enige evaluatiebeperkingen.
Conclusie
In dit artikel hebben we geleerd over de aanpak van het converteren van HTML-bestanden naar PDF-indeling met behulp van .NET API. Als u meer wilt weten over andere opwindende functies die worden aangeboden door Aspose.PDF voor .NET, gaat u naar de pagina [Belangrijkste kenmerken][17]. Een complete set voorbeelden is te vinden in de [GitHub-repository][18].
Snelle tip
We hebben ook gratis online applicaties ontwikkeld om snel de functies van onze API’s te controleren. U kunt dus de [Aspose.PDF-conversie-app][19] raadplegen om een HTML-bestand om te zetten in een PDF-indeling. Bovendien kunt u ook verschillende andere bestandsindelingen gebruiken en aan uw conversievereisten voldoen. [1]: https://blog.conholdate.com/wp-content/uploads/sites/27/2021/04/icon-1.png [2]: https://docs.fileformat.com/pdf/ [3]: https://docs.fileformat.com/web/html/ [4]: #CSharp-API-to-Convert-HTML-to-PDF [5]: #Convert-HTML-to-PDF-in-CSharp [6]: #Embed-fonts-during-conversion [7]: #Convert-Web-page-to-PDF [8]: #Render-complete-HTML-on-a-single-page [9]: https://products.aspose.com/pdf/net [10]: https://www.nuget.org/packages/Aspose.PDF/ [11]: https://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions/properties/isembedfonts [12]: https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-5.0 [13]: https://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions [14]: https://apireference.aspose.com/pdf/net/aspose.pdf/document [15]: https://apireference.aspose.com/pdf/net/aspose.pdf.document/save/methods/4 [16]: https://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions/properties/isrendertosinglepage [17]: https://docs.aspose.com/pdf/net/key-features/ [18]: https://github.com/aspose-pdf/Aspose.Pdf-for-.NET [19]: https://products.aspose.app/pdf/conversion