La trasformazione di HTML in PDF è comune, ma le impostazioni predefinite non sono sempre ideali per la stampa, l’archiviazione o le sintesi esecutive. Aspose.HTML for .NET, puoi controllare con precisione le dimensioni delle pagine, i margini, l’orientamento e le regole dei media CSS per produrre PDF professionali e coerenti.Questa guida mostra una configurazione pulita e un campione completo di C# che puoi mettere nel tuo progetto.
a dei dati
- utilizzo
Converter.ConvertHTMLconPdfSaveOptionsper un rendering HTML → PDF affidabile. - Configurazione
PageSetup.AnyPage2 Set Pagina di dimensioni e Margine (A4, A3 o dimensioni personalizzate). - Sconto
Css.MediaTypetra Screen di e Il Principe - rispettare le regole CSS corrette. - JPEG.
Guida passo per passo
1) Load an HTML document
caricare dal file quando disponibile, o creare un HTMLDocument da una stringa con un URI di base per risolvere le risorse relative.
2) Configure page geometry and CSS media
Impostazione delle dimensioni e dei margini della pagina PageSetup.AnyPage.selezionare MediaType.Print per applicare @media print Stile o MediaType.Screen Per creare uno stile di schermo.
3) Render to PDF
Chiamate Converter.ConvertHTML(document, options, outputPath) Per produrre il tuo PDF.
Crea un nuovo progetto: Seleziona il modello di progetto ASP.NET Web Application (.NET Framework).

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}");
}
}
}
}
: nella finestra di dialogo Crea una nuova applicazione web ASP.NET, scegliere MVC e fare clic su Crea.

- PLACEHOLDER_0} Crea una cartella Immagini: Aggiungi una nuova cartella Immagini per memorizzare le immagini generate dal codice a barre.:
dotnet new console -n AsposeHtmlAdvancedPdfDemo
cd AsposeHtmlAdvancedPdfDemo
- Crea un modello di codice a barre: Nella cartella Modelli, crea un modello chiamato codice a barre per contenere informazioni sul codice a barre. :
dotnet add package Aspose.HTML
- sostituzione
Program.csCon il Esempio completo sopra di. - Aggiungi cifratura simbolica a barre: Crea un’enumerazione per elencare le symbologie dei codici a barre supportate nel file MRWBarcode.cs. :
dotnet run -- ../path/to/sample.html
Aggiungi formato immagine: Allo stesso modo, aggiungi un’enumerazione per i formati di immagine supportati.
- Carico un file HTML (o usa inline HTML per un rapido avvio).
- Configurazione di
PdfSaveOptionsper ritratto A4, paesaggio A3 e una taglia personalizzata di 6×9 pollici. - applicazione di
MediaType.PrintoMediaType.Screenper soddisfare le regole CSS. - esportazioni 3 PDF personalizzati per un
out/Il Folletto.
Risoluzione dei problemi e suggerimenti
- Le regole CSS sbagliate:di toggle
options.Css.MediaTypetraPrinteScreenper corrispondere al tuo stile. - Contenuti tagliati o crampati: aumentare le margini o le dimensioni della pagina; considerare formati più grandi per le tabelle ampie.
- Fonte mancante: assicurarsi che le fonti siano disponibili al render o incorporate tramite
@font-facenel tuo HTML. - performance:semplificare DOM/CSS pesante dove possibile; cache le risorse statiche.
FAQ
Q1.Come impostare le dimensioni e i margini della pagina per PDF? utilizzo PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) con unità da Length (in millimetri o inchi).
Q2.Posso forzare gli stili di stampa durante il rendering? Sì, set options.Css.MediaType = MediaType.Print così @media print Le regole si applicano.
Q3. come faccio a rendere le pagine paesaggistiche? Specifica un paesaggio Size (ad esempio A3 420 × 297 mm) quando si crea il Page.
Q4.Come posso esportare più varianti (stampa vs schermo)? Creare separatamente PdfSaveOptions Le persone con diversi Css.MediaType e le impostazioni della pagina, quindi chiamare Converter.ConvertHTML per ciascuno di loro.
Q5: Ho bisogno di un motore di navigazione in esecuzione? No. Aspose.HTML rende server-side senza browser esterni.
Conclusione
con PdfSaveOptions Con CSS e media-conscious, è possibile produrre PDF che si adattano alle esigenze di stampa, archivio o esecutivo. Inizia con un ritratto A4 per uso generale, aggiungi paesaggio A3 per layout ampi e mantieni una dimensione personalizzata per i foglietti o i report.
More in this category
- C# HTML to PDF: Customizing Output with Aspose.HTML
- Conversione HTML all’immagine: una guida completa con esempi
- Convertire HTML in immagine con Aspose.HTML per .NET: una guida passo dopo passo
- Convertire HTML in immagini di alta qualità con Aspose.HTML per .NET
- Ottimizzazione dei grandi documenti HTML: velocità e manutenzione