ההפצה של HTML ל- PDF נפוצה, אך הגדרות המוצג כברירת מחדל אינן תמיד אידיאליות עבור הדפסה, ארכיון או סיכום מנהלים. Aspose.HTML for .NET, אתה יכול לשלוט במדויק בגודל הדף, גבולות, כיוון, ו CSS כללי מדיה לייצר עקבי, PDFs מקצועי מדריך זה מציג הגדרת נקיה ודוגמה של C # מלאה אתה יכול להוריד בפרויקט שלך.
NAME OF TRANSLATORS
- שימוש
Converter.ConvertHTMLעםPdfSaveOptionsעבור HTML → PDF rendering אמין. - Configure
PageSetup.AnyPage2 סט גודל דף ו מרינג (A4, A3 או בגדלים מותאמים אישית). - Switch
Css.MediaTypeבין מסך ו הנסיך כדי לכבד את הכללים הנכונים של CSS. - : A4 for print, A3 example for arounds, and specified criptures for prisons.
מדריך צעד אחר צעד
1) Load an HTML document
להעלות קובץ כאשר זמין, או ליצור HTMLDocument מתוך שורת עם URI בסיס כדי לפתור נכסים יחסיים.
2) Configure page geometry and CSS media
הגדרת גודל דף ומגבלות באמצעות PageSetup.AnyPage.בחר MediaType.Print להנפיק @media print סגנון או MediaType.Screen להגדיר את מסך הסגנונות.
3) Render to PDF
התקשר Converter.ConvertHTML(document, options, outputPath) להפיק את PDF שלך.
. דוגמה מלאה (C# Compilable)
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}");
}
}
}
}
כיצד לרוץ
- app:
dotnet new console -n AsposeHtmlAdvancedPdfDemo
cd AsposeHtmlAdvancedPdfDemo
- :
dotnet add package Aspose.HTML
- תחליף
Program.csעם The דוגמה מלאה למעלה. - @ info: whatsthis:
dotnet run -- ../path/to/sample.html
מה הקוד הזה עושה
- Loads קובץ HTML (או להשתמש HTML מקוון כדי להתחיל במהירות).
- Configuration →
PdfSaveOptionsעבור דיוקן A4, נוף A3 וגודל קישוט מותאם אישית 6×9 אינץ'. - יישום →
MediaType.PrintאוMediaType.Screenכדי להתאים את הכללים של CSS שלך. - ייצוא 3 קבצים PDF עבור
out/פופולרי.
פתרון בעיות וטיפים
- חוקי CSS לא נכונים:טוגל
options.Css.MediaTypeביןPrintוScreenכדי להתאים את הסגנון שלך. - תוכן קצר או קצר:הגדילו את גבולות או את גודל הדף; שימו לב לפורמטים גדולים יותר עבור טבלאות רחבות.
- מקורות חסרים: ודא כי הטופס זמין ל renderer או להטביע דרך
@font-faceעל HTML שלך. - ביצועים: הפשט DOM / CSS כבד כאשר אפשרי; קח את הנכסים סטטיים.
FAQ
Q1.איך אני מגדיר את גודל הדף ומגבלות עבור PDF? שימוש PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) עם יחידות מ Length (מילטרים או אינץ ’ של מילים).
Q2.Can I force סגנונות הדפסה במהלך rendering? תגית: set options.Css.MediaType = MediaType.Print כך @media print הכללים מתייחסים.
Q3.איך אני מראה את הדפים של נוף? הצג נוף Size (לדוגמה, A3 420 × 297 מ"מ) בעת יצירת Page.
Q4.How אני יכול לייצא מגוון של גרסאות (דפסה נגד מסך)? יצירת נפרד PdfSaveOptions מקרים שונים עם Css.MediaType עמודים נוספים, אז התקשר Converter.ConvertHTML עבור כל אחד.
Q5: האם אני צריך מנוע דפדפן פועל? HTML מראה את צד השרת ללא דפדפנים חיצוניים.
Conclusion
עם PdfSaveOptions עם CSS מודע למדיה, תוכל לייצר PDF שמתאימים לצרכים של הדפסה, ארכיון או מנהלים. התחל עם דיוקן A4 לשימוש כללי, הוסף נוף A3 עבור עיצובים רחבים, ולשמור על גודל קישוט מותאם אישית עבור מגזינים או דוחות.