Přepínání HTML na PDF je běžné, ale výchozí nastavení nejsou vždy ideální pro tisk, archivování nebo výkonné shrnutí. Aspose.HTML for .NET, můžete přesně ovládat velikost stránky, okraj, orientaci a CSS mediální pravidla pro výrobu konzistentních, profesionálních PDF. Tento průvodce ukazuje čisté nastavení a kompletní vzorek C#, který můžete do svého projektu vložit.
Key Takeaways
- Použijte
Converter.ConvertHTMLsPdfSaveOptionsPro spolehlivé HTML → PDF renderování. - Konfigurovat
PageSetup.AnyPage2 set Velikost stránky a Marže (A4, A3 nebo v přizpůsobené velikosti). - Přepínání
Css.MediaTypeMezi obrazovky a Princův Vhodné je dodržovat pravidla CSS. - Vytvářejte více výstupů: A4 pro tisk, A3 krajinu pro široké rozložení a vlastní velikosti pro booklety.
Průvodce krok za krokem
1) Load an HTML document
Stahujte z souboru, když je k dispozici, nebo vytvořte HTMLDocument z řetězce s URI základu k vyřešení relativních aktiv.
2) Configure page geometry and CSS media
Definujte velikost a okraj stránky prostřednictvím PageSetup.AnyPage.• vybrané MediaType.Print Aplikovat @media print stylů nebo MediaType.Screen Vytvořte obrazovky stylů.
3) Render to PDF
volání Converter.ConvertHTML(document, options, outputPath) Vytvořte si svůj PDF.
Kompletní, kompilovatelný příklad (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 AsposeHtmlAdvancedPdfDemo
{
internal static class Program
{
// How to run:
// 1) dotnet new console -n AsposeHtmlAdvancedPdfDemo
// 2) cd AsposeHtmlAdvancedPdfDemo
// 3) dotnet add package Aspose.HTML
// 4) Replace Program.cs with this file's contents
// 5) dotnet run -- "path-to-input.html" (argument optional)
private static void Main(string[] args)
{
// Ensure output folder exists
string outDir = Path.Combine(Directory.GetCurrentDirectory(), "out");
Directory.CreateDirectory(outDir);
// Prepare an HTMLDocument: from file path (if provided) or from 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>Advanced PDF Output</title>" +
"<style>body{font-family:Arial,Helvetica,sans-serif;margin:24px}" +
"h1{margin:0 0 12px} .lead{color:#444} .wide{width:100%;border-collapse:collapse}" +
".wide th,.wide td{border:1px solid #ddd;padding:6px 8px;text-align:left}" +
"@media print { body{font-size:12pt} .lead{color:#000} }</style>" +
"</head><body>" +
"<h1>Aspose.HTML PDF Output</h1>" +
"<p class=\\\"lead\\\">This PDF is rendered with custom page size, margins, and media rules.</p>" +
"<table class=\\\"wide\\\"><tr><th>Item</th><th>Qty</th><th>Price</th></tr>" +
"<tr><td>Widget A</td><td>4</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)
{
// A4 portrait with 12.7 mm margins, using print CSS
var a4 = new PdfSaveOptions();
a4.Css.MediaType = MediaType.Print;
var mm = Length.FromMillimeters;
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, "document-a4.pdf");
Converter.ConvertHTML(document, a4, a4Path);
Console.WriteLine($"Saved: {a4Path}")
;
// A3 landscape (420 x 297 mm) 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, "document-a3-landscape.pdf");
Converter.ConvertHTML(document, a3Landscape, a3Path);
Console.WriteLine($"Saved: {a3Path}");
// Custom trim size 6 x 9 inches with narrow margins
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, "document-6x9.pdf");
Converter.ConvertHTML(document, custom, customPath);
Console.WriteLine($"Saved: {customPath}");
}
}
}
}
Jak běhat
- Vytvořit aplikaci konzole:
dotnet new console -n AsposeHtmlAdvancedPdfDemo
cd AsposeHtmlAdvancedPdfDemo
- Přidat balíček:
dotnet add package Aspose.HTML
- nahradit
Program.csS tímto Kompletní příklad nahoře. - spustit s HTML souborem (nepovinné):
dotnet run -- ../path/to/sample.html
Co tento kód dělá
- Loadů HTML soubor (nebo pro rychlý start použijte inline HTML).
- Konfigurace se
PdfSaveOptionspro portrét A4, krajinu A3 a vlastní velikost 6×9 palců. - Aplikuje se
MediaType.PrintneboMediaType.ScreenPřizpůsobte se vašim CSS pravidlům. - Exporty Tři přizpůsobené PDF do jednoho
out/Zobrazit folder.
Řešení problémů a tipy
- Nesprávné pravidla CSS:• Toggle
options.Css.MediaTypeMeziPrintaScreenPřizpůsobit se vašemu stylovému listu. - Zkreslený nebo zkreslený obsah:Zvýšení rozměrů stránek nebo rozměrů okrajů; zvážit větší formáty pro široké tabulky.
- Ztracené zdroje: zajistěte, aby byly písma k dispozici renderu nebo vložené prostřednictvím
@font-faceV jejich HTML. - Výkonnost:Zjednodušte těžké DOM/CSS, kde je to možné; vyrovnávací paměť statických aktiv.
FAQ
Q1.Jak nastavit velikost stránky a okraje pro PDF? Použijte PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) Jednotky z Length (v milimetrech nebo centimetrech).
Q2.Mohu při renderování tlačit stylové tiskárny? Ano, set options.Css.MediaType = MediaType.Print Taková @media print Pravidla se uplatňují.
Q3. jak mohu zobrazit stránky krajiny? Vyznačte si krajinu Size (například A3 420 × 297 mm) při vytváření Page.
Q4.Jak mohu exportovat více variant (tisk vs obrazovka)? Vytvořte samostatně PdfSaveOptions Případy s různými Css.MediaType a stránky nastavení, pak zavolejte Converter.ConvertHTML Pro každého.
Q5 Potřebuji spouštěcí prohlížeč? No. Aspose.HTML renderuje serverovou stránku bez externích prohlížečů.
Závěr
s PdfSaveOptions a mediálně informované CSS, můžete vytvořit PDF soubory, které vyhovují tiskové, archivní nebo výkonné potřeby. Začněte s A4 portrét pro obecné použití, přidejte A3 krajinu pro široké rozložení a udržujte vlastní velikost úprav pro brožury nebo zprávy. Testujte s reprezentativními dokumenty, aby se zamknout ve výchozích položkách, které odpovídají vaší značce a zúčastněným stranám.