HTML in PDF umzuwandeln ist üblich – von Rechnungen bis zu Berichten – aber die Standard-Einstellungen passen selten zu Ihren Marken- und Druckbedürfnissen. Aspose.HTML for .NET,Sie können genau kontrollieren Seite Größe, Marginale, Orientierung,und CSS Medienregeln Diese Anleitung zeigt eine saubere, wiederholbare Einrichtung und enthält eine komplette C#-Probe.
Schlüssel zum Mitnehmen
- benutzen
Converter.ConvertHTMLmitPdfSaveOptionsfür robuste HTML → PDF Konvertierung. - Konfigurieren
PageSetup.AnyPage2 Set Größe und Marginale (A4/A3/nach Bedarf) - Wählen Sie Portrait oder Landschaft nach Größe. - Anwendung
options.Css.MediaType(Prinz vs BildschirmUm die richtige CSS zu ehren. - Erzeugen Sie mehrere Varianten (z.B. A4 Portrait + A3 Landschaft) aus dem gleichen HTML für unterschiedliche Zielgruppen.
CAD API Exportieren
1) Set up the project
Installieren Sie das NuGet-Paket und erstellen Sie ein Konsoleprojekt (Schritte in Wie der Mensch laufen).
2) Load HTML content
Laden Sie eine vorhandene Datei hoch oder erstellen Sie eine HTMLDocument aus einer String. bereitstellen a Basis für URI CSS, Bilder und Schriftarten zu lösen.
3) Configure page geometry and media
benutzen PdfSaveOptions.PageSetup.AnyPage zu definieren Größe und Margin,und Set Css.MediaType Zwei Ziele @media print Regeln bei Bedarf.
4) Convert to PDF
Rufen Sie Converter.ConvertHTML(document, options, path) um die PDF-Datei zu schreiben.
Komplettes, kompilierbares Beispiel (C#)
using System;
using System.IO;
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving; // PdfSaveOptions
using Aspose.Html.Rendering; // MediaType
using Aspose.Html.Drawing; // Length, Size, Margin, Page
namespace HtmlToPdfCustomization
{
internal static class Program
{
// How to run:
// 1) dotnet new console -n HtmlToPdfCustomization
// 2) cd HtmlToPdfCustomization
// 3) dotnet add package Aspose.HTML
// 4) Replace Program.cs with this file's contents
// 5) dotnet run -- "path-to-input.html" (optional)
private static void Main(string[] args)
{
string outDir = Path.Combine(Directory.GetCurrentDirectory(), "out");
Directory.CreateDirectory(outDir);
// Load HTML from file if provided; otherwise, use inline HTML
HTMLDocument document;
if (args.Length > 0 && File.Exists(args[0]))
{
document = new HTMLDocument(args[0]);
}
else
{
string html = "<!DOCTYPE html>" +
"<html><head><meta charset=\\\"utf-8\\\">" +
"<title>HTML to PDF (Aspose.HTML)</title>" +
"<style>body{font-family:Arial,Helvetica,sans-serif;margin:24px}" +
".lead{color:#444} table{width:100%;border-collapse:collapse}" +
"th,td{border:1px solid #ddd;padding:6px 8px;text-align:left}" +
"@media print{body{font-size:12pt}.lead{color:#000}}</style>" +
"</head><body>" +
"<h1>Order Summary</h1>" +
"<p class=\\\"lead\\\">This PDF respects print CSS and custom page settings.</p>" +
"<table><tr><th>Item</th><th>Qty</th><th>Price</th></tr>" +
"<tr><td>Widget A</td><td>3</td><td>$12.00</td></tr>" +
"<tr><td>Widget B</td><td>2</td><td>$9.50</td></tr></table>" +
"</body></html>";
document = new HTMLDocument(html, ".");
}
using (document)
{
var mm = Length.FromMillimeters;
// Variant 1: A4 portrait with 12.7 mm margins, using print CSS
var a4 = new PdfSaveOptions();
a4.Css.MediaType = MediaType.Print;
a4.PageSetup.AnyPage = new Page(
new Size(mm(210), mm(297)), // A4
new Margin(mm(12.7), mm(12.7), mm(12.7), mm(12.7))
);
string a4Path = Path.Combine(outDir, "order-a4.pdf");
Converter.ConvertHTML(document, a4, a4Path);
Console.WriteLine($"Saved: {a4Path}");
// Variant 2: A3 landscape with tighter margins, using screen CSS
var a3Landscape = new PdfSaveOptions();
a3Landscape.Css.MediaType = MediaType.Screen;
a3Landscape.PageSetup.AnyPage = new Page(
new Size(mm(420), mm(297)), // A3 landscape
new Margin(mm(10), mm(10), mm(10), mm(10))
);
string a3Path = Path.Combine(outDir, "order-a3-landscape.pdf");
Converter.ConvertHTML(document, a3Landscape, a3Path);
Console.WriteLine($"Saved: {a3Path}");
// Variant 3: Custom 6 x 9 inches trim with narrow margins (print CSS)
var custom = new PdfSaveOptions();
custom.Css.MediaType = MediaType.Print;
custom.PageSetup.AnyPage = new Page(
new Size(Length.FromInches(6), Length.FromInches(9)),
new Margin(mm(5), mm(5), mm(5), mm(5))
);
string customPath = Path.Combine(outDir, "order-6x9.pdf");
Converter.ConvertHTML(document, custom, customPath);
Console.WriteLine($"Saved: {customPath}");
}
}
}
}
Der Code tut
- Ladung HTML aus einer Datei oder einem String-Memory mit einer Basis-URI.
- Konfigurieren -
PdfSaveOptionsfür A4-Porträt, A3-Landschaft und eine maßgeschneiderte 6×9 Zoll-Schnittgröße. - Anwendbar -
MediaType.PrintoderMediaType.ScreenSie passen zu Ihren CSS-Regeln. - Export Drei PDFs in einem
out/Das Folder .
Fehlerbehebung & Tipps
- Falscher Stil:Tag: Toggle
options.Css.MediaTypezwischenPrintundScreenUm Ihre Styling-Liste zu kombinieren. - Clip Inhalt: Erhöhen Sie die Seitengröße oder Margen; breiteres Format helfen bei großen Tabellen.
- Fehlende Quellen:Stellen Sie sicher, dass die Schriftarten dem Render zur Verfügung stehen oder über
@font-face. - Leistung: vereinfachen schweren DOM / CSS; bevorzugen cached statische Assets.
FAQ
Q1. Wie stelle ich die Seitengröße und Margen ein? benutzen PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) Mit Einheiten von Length (Millimeter oder Zoll).
Q2. Kann ich Druckstile zwingen? Ja, set options.Css.MediaType = MediaType.Print so @media print Regeln gelten .
Q3. Wer zeige ich Landschaftsseiten? Eine Landschaft bietet Size (zB A3 420 × 297 mm) beim Erstellen der Page.
Q4. Kann ich mehrere Varianten aus einem HTML exportieren? Separate Erzeugen PdfSaveOptions Objekte (andere Objekte Css.MediaType und Großen) und rufen Converter.ConvertHTML Für einen .
Q5. Brauche ich eine Browser-Engine installiert? No. Aspose.HTML macht Serverseite ohne externe Browser.
Schlussfolgerung
benutzen PdfSaveOptions Mit CSS und Medienbewusstem CSS können Sie polierte PDFs erstellen, die auf Druck-, Archiv- oder Führungsbedürfnisse zugeschnitten sind.Starten Sie mit A4-Porträt für allgemeine Dokumente, fügen Sie A3-Landschaft für breite Layouts hinzu und behalten Sie eine benutzerdefinierte Trimgröße für Broschüren oder Berichte.
More in this category
- HTML zum Image-Konvertierung: Ein umfassender Leitfaden mit Beispielen
- HTML-Konvertierungsprobleme: Bildqualität, Formatierung und Leistung
- Konvertieren HTML in Bild mit Aspose.HTML für .NET: Ein Schritt für Schritt Guide
- Optimierung von großen HTML-Dokumenten: Geschwindigkeit und Wartungsfähigkeit
- Umwandeln von HTML in hochwertige Bilder mit Aspose.HTML für .NET