PDF naar HTML-conversie

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#

  1. Maak een instantie van de klasse License om eventuele beperkingen tijdens het genereren van PDF-bestanden op te heffen.
  2. 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.
  3. 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.
  4. Roep de methode Opslaan(…) van het documentobject aan en geef de uitvoer weer in PDF-indeling.
    // 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};
De maateenheid in Aspose.PDF is Punten. En we weten dat A3 297 × 420 millimeter of 11,69 × 16,54 inch meet. De afmetingen zijn dus afgerond op 842 × 1190 punten. In het volgende codefragment passen we het paginaformaat van het resulterende document aan als A3 en de paginaoriëntatie als Liggend.
// 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#

  1. Lees de inhoud van de pagina met behulp van een [HttpClient][12]-object.
  2. Instantiseer het [HtmlLoadOptions][13]-object en stel de basis-URL in.
  3. Initialiseer een [Document][14]-object en geef het stream-object en de [HtmlLoadOptions][13]-instantie door als argumenten.
  4. Roep de methode [Save(String)][15] aan vanuit de klasse Document om de uitvoer te genereren.
    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