إن إدراج HTML إلى PDF شائع، ولكن الإعدادات الافتراضية ليست مثالية دائما للطباعة أو الأرشيف أو المجموعات التنفيذية. Aspose.HTML for .NET,يمكنك التحكم بالضبط في حجم الصفحة والمنحدرات والتوجيه وقواعد وسائل الإعلام CSS لإنتاج PDFs متسقة ومهنية.هذا الدليل يظهر إعداد نظيف وعينة C# كاملة يمكنك إدخالها في مشروعك.
Key Takeaways
- استخدام
Converter.ConvertHTMLمعPdfSaveOptionsلـ HTML و PDF. - تثبيت
PageSetup.AnyPageلتحديد حجم الصفحة و المارغين (A4 أو A3 أو الأحجام المخصصة). - التبديل
Css.MediaTypeبين شاشة و الطباعة - احترام القواعد الصحيحة لـ CSS. - إنشاء العديد من النتائج: A4 للطباعة، A3 المناظر الطبيعية للترتيب الواسع، وحجم القطع المخصصة للكتب.
خطوة بخطوة دليل
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# Code
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}");
}
}
}
}
كيفية الركض
- إعداد تطبيق كونسول :
dotnet new console -n AsposeHtmlAdvancedPdfDemo
cd AsposeHtmlAdvancedPdfDemo
- إضافة الحزمة :
dotnet add package Aspose.HTML
- استبدال
Program.csمع The مثال كامل أعلى. - تشغيل مع ملف HTML (اختياري):
dotnet run -- ../path/to/sample.html
ماذا يفعل هذا الرمز
- تحميل ملف HTML (أو استخدام HTML في الخطوط لبدء سريع).
- تكوينات الـ
PdfSaveOptionsلقطعة A4، A3 المناظر الطبيعية، وحجم مقياس 6 × 9 بوصة. - تطلب الـ
MediaType.PrintأوMediaType.Screenلتناسب قواعد CSS الخاصة بك. - تصدير 3 ملفات PDF مخصصة لـ
out/مجلد.
حل المشكلات & نصائح
- قواعد CSS الخاطئة: طنجة
options.Css.MediaTypeبينPrintوScreenلتناسب لوحة النمط الخاصة بك. - المحتوى المضغوط أو المضغوط: زيادة الحدود أو حجم الصفحة ؛ فكر في تنسيقات أكبر للجدول الواسعة.
- المصدر المفقود: تأكد من أن الخطوط متاحة للمعهد أو مدمجة عبر
@font-faceفي HTML الخاص بك. - أداء: تبسيط DOM / CSS الثقيلة حيثما كان ذلك ممكنا ؛ خزانة الأصول الثابتة.
FAQ
س1: كيف يمكنني تعيين حجم الصفحة والحدود لـ PDF؟? استخدام PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) وحدة من Length (مليميتر أو بوصة).
Q2: هل يمكنني إجبار أنماط الطباعة أثناء التصوير؟? نعم، مجموعة options.Css.MediaType = MediaType.Print هكذا @media print قواعد تنطبق.
Q3: كيف أقوم بتحويل صفحات المناظر الطبيعية؟? تحديد المناظر الطبيعية Size (على سبيل المثال A3 420 × 297 مم) عند إنشاء Page.
كيف يمكنني تصدير العديد من الاختلافات (الطباعة مقابل الشاشة)؟? خلق منفصل PdfSaveOptions الحالات المختلفة Css.MediaType و صفحة إعدادات ثم الاتصال Converter.ConvertHTML لكل واحد منهم.
Q5: هل أحتاج إلى محرك متصفح يعمل؟? لا. Aspose.HTML يرفع صفحة الخادم دون متصفحات خارجية.
استنتاجات
مع PdfSaveOptions ويمكنك إنتاج ملفات تعريف الويب التي تناسب الطباعة أو الأرشيف أو الاحتياجات التنفيذية.بدءاً من صورة A4 للاستخدام العام، إضافة A3 المناظر الطبيعية إلى ترتيب واسع، والحفاظ على حجم مقياس مخصص للكتاب أو التقارير.اختبار مع الوثائق التمثيلية لإغلاق الافتراضات التي تناسب العلامة التجارية الخاصة بك والمصالح.
More in this category
- إصلاح HTML إلى مشاكل تحويل الصور في .NET
- إعادة التأهيل - يرجى التعامل مع المشاكل التالية: الخطأ (يجب تصحيحها): 1.مربع الأمامية 'seoTitle' تم اكتشافه على أنها 'نعم' (الثقة 86٪)، المتوقع 'أ'.مشاهدة: 'HTML Rendering: Aspose.HTML Styling Guide' المصدر النص: Aspose.HTML: Styling HTML for Image Rendering
- C# HTML إلى PDF: تخصيص النتيجة مع Aspose.HTML
- HTML إلى تحويل الصورة: دليل شامل مع أمثلة
- تبسيط تحويل HTML إلى الصورة مع Aspose.HTML ل .NET