PDF-zu-HTML-Konvertierung

Das PDF (Portable Document Format) ist eines der weit verbreiteten Dokumentenformate für den plattformübergreifenden Daten- und Informationsaustausch. Zu seinen einzigartigen Fähigkeiten gehört, dass die Genauigkeit eines Dokuments bei der Anzeige auf einer beliebigen Plattform mit der Anwendung gemäß den Adobe-Spezifikationen erhalten bleibt. Darüber hinaus ist HTML (HyperText Markup Language) auch ein führendes Dateiformat für die Entwicklung von Webseiten, und die meisten Webbrowser unterstützen dieses Format. PDF wird jedoch allgemein akzeptiert, da es problemlos auf jedem Gerät angezeigt werden kann, ohne dass die Dokumentformatierung verloren geht. Daher werden wir in diesem Artikel die Schritte zum Konvertieren der Datei HTML in das Format PDF mithilfe der .NET-API besprechen.

C#-API zum Konvertieren von HTML in PDF

Um den Konvertierungsvorgang durchzuführen, müssen wir zunächst Aspose.PDF for .NET auf dem System installieren. Die API ist in der Bibliothek NuGet verfügbar. Bitte führen Sie den folgenden Befehl in der Paket-Manager-Konsole aus, um es zu installieren:

Install-Package Aspose.Pdf

Sobald die Installation abgeschlossen ist, wird Aspose.PDF für .NET im Ordner „Packages“ im Projektmappen-Explorer angezeigt.

Konvertieren Sie HTML in C# in PDF

Im Folgenden finden Sie die Schritte zum Konvertieren von HTML in PDF mit C #

  1. Erstellen Sie eine Instanz der License-Klasse, um alle Einschränkungen während des Generierungsprozesses der PDF-Datei zu entfernen.
  2. Erstellen Sie ein Objekt der Klasse HtmlLoadOptions, während Sie die eingegebene HTML-Basis-URL als Argument an [HtmlLoadOptions(…)](https:/ /apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions)-Konstruktor.
  3. Objekt der Klasse Dokument initialisieren und [HtmlLoadOptions](https://apireference.aspose.com/pdf/net/aspose. pdf/htmlloadoptions)-Objekt als Argument für seinen Konstruktor.
  4. Rufen Sie die Methode Save(…) des Document-Objekts auf und rendern Sie die Ausgabe im PDF-Format.
// Erstellen Sie ein Objekt, um die Lizenz zu initiieren
Aspose.Pdf.License license = new Aspose.Pdf.License();

// Geben Sie den Pfad der Lizenzdatei an
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// Erstellen Sie eine Instanz der HtmlLoadOptions-Klasse
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// Document-Objekt erstellen und HTML-Dateipfad für die Eingabe bereitstellen
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// Speichern Sie den resultierenden HTML-Code im PDF-Format
document.Save("/Documents/Converted.pdf");

Betten Sie Schriftarten während der Konvertierung ein

Die meisten HTML-Seiten verwenden häufig Schriftarten (z. B. Schriftarten aus lokalen Ordnern, Google Fonts usw.), und um das Layout der Seiten beizubehalten, müssen dieselben Schriftarten während des Rendering-Prozesses eingebettet werden. Um also die Einbettung von Schriftarten in das resultierende Dokument zu steuern, müssen wir die Eigenschaft IsEmbedFonts verwenden.

// Betten Sie Schriftarten während der Konvertierung ein
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

Die Maßeinheit in Aspose.PDF ist Punkte. Und wir wissen, dass A3 297 × 420 Millimeter oder 11,69 × 16,54 Zoll misst. Die Abmessungen werden also auf 842 × 1190 Punkte abgerundet. Im folgenden Codeausschnitt stellen wir die Seitengröße des resultierenden Dokuments auf A3 und die Seitenausrichtung auf Querformat ein.

// Stellen Sie die Seitengröße auf A3 und die Seitenausrichtung auf Querformat ein
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

Webseite in PDF umwandeln

Neben der Konvertierung von HTML-Dateien müssen wir möglicherweise auch eine Webseite direkt in das PDF-Format konvertieren. Um diese Anforderung zu erfüllen, rufen wir zunächst den Inhalt der entfernten Webseite mithilfe der HttpClient-Instanz ab, erstellen ein Stream-Objekt und übergeben dann die Stream-Instanz an das Document-Objekt. Der Grund, warum wir den Inhalt in Stream benötigen, ist, dass die Document-Instanz nur Dateien oder Steam-Objekte akzeptiert.

Im folgenden Abschnitt werden die Schritte zum Konvertieren einer Webseite in PDF mit C# erläutert.

  1. Lesen Sie den Inhalt der Seite mit einem HttpClient-Objekt.
  2. Instanziieren Sie das Objekt HtmlLoadOptions und legen Sie die Basis-URL fest.
  3. Initialisieren Sie ein Document-Objekt und übergeben Sie das Stream-Objekt und die HtmlLoadOptions-Instanz als Argumente.
  4. Rufen Sie die Methode Save(String) aus der Document-Klasse auf, um die Ausgabe zu generieren.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // Legen Sie die Seitengröße A3 und Querformat fest; 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // Legen Sie die Seitenabmessungen fest
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // Erstellen Sie eine Instanz des Document-Objekts
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // Speichern Sie das Ergebnis
    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))
    {
        // Abrufen und Zurückgeben von Ergebnissen in der Stream-Instanz
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

Vollständiges HTML auf einer einzigen Seite rendern

Während der HTML-zu-PDF-Konvertierung entspricht die Länge der resultierenden Datei der Inhaltslänge eines Eingabe-HTML-Dokuments. Wenn also das Eingabe-HTML aus mehreren Seiten besteht, erstreckt sich die resultierende Datei auch über mehrere Seiten. Wir können die Ausgabe jedoch auf eine einzelne PDF-Seite beschränken. Um diese Anforderung zu erfüllen, kann die Eigenschaft IsRenderToSinglePage der HtmlLoadOptions-Klasse verwendet werden.

Unten finden Sie das Code-Snippet zum Rendern des vollständigen HTML-Inhalts auf einer einzelnen PDF-Seite mit C#.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Initialisieren Sie das HtmlLoadOptions-Objekt
HtmlLoadOptions options = new HtmlLoadOptions();

// Stellen Sie das Rendern auf die Eigenschaft „Einzelseite“ ein
options.IsRenderToSinglePage = true;

// HTML-Inhalt der Dokumentenquelle laden
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// Speichern Sie die resultierende PDF-Datei
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

Holen Sie sich eine kostenlose Lizenz

Sie können [eine kostenlose temporäre Lizenz] (https://purchase.aspose.com/temporary-license) anfordern, um die API ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir den Ansatz zum Konvertieren von HTML-Dateien in das PDF-Format mithilfe der .NET-API kennengelernt. Wenn Sie weitere interessante Funktionen von Aspose.PDF für .NET erfahren möchten, besuchen Sie bitte die Seite Hauptfunktionen. Eine vollständige Reihe von Beispielen finden Sie im GitHub-Repository.

Schneller Tipp

Wir haben auch kostenlose Online-Anwendungen entwickelt, um die von unseren APIs angebotenen Funktionen schnell zu überprüfen. Sie können also die Aspose.PDF Conversion App überprüfen, um eine HTML-Datei in das PDF-Format umzuwandeln. Darüber hinaus können Sie auch verschiedene andere Dateiformate verwenden und Ihre Konvertierungsanforderungen erfüllen.