التحويل HTML إلى PDF شائع - من الفواتير إلى التقارير - ولكن الإعدادات الافتراضية نادرا ما تتطابق مع احتياجات العلامة التجارية والطباعة. Aspose.HTML for .NET,يمكنك التحكم بالضبط حجم الصفحة, المارغين, التوجه,و و قواعد CSS لإنتاج PDFs متسقة ومهنية.هذا الدليل يظهر إعداد نظيف قابل للتكرار ويشمل عينة C# كاملة.
Key Takeaways
- استخدام
Converter.ConvertHTMLمعPdfSaveOptionsلـ HTML قوية → تحويل PDF. - تثبيت
PageSetup.AnyPageلتحديد حجم و المارغين (A4 / A3 / مخصص) ، اختر صورة أو وجهة نظر حسب الحجم. - تطبيق
options.Css.MediaType(الطباعة vs شاشة- كرامة لـ CSS الصحيح. - إنشاء العديد من الاختلافات (على سبيل المثال، صورة A4 + A3 المناظر الطبيعية) من نفس HTML لمختلف الجمهور.
خطوة بخطوة دليل
1) Set up the project
قم بتثبيت حزمة NuGet وخلق مشروع لوحة المفاتيح (خطوات في كيفية الركض).
2) Load HTML content
تحميل ملف موجود أو بناء ملف HTMLDocument من صفوف.مقدم أ قاعدة URI حل CSS النسبي والصور والخطوط.
3) Configure page geometry and media
استخدام PdfSaveOptions.PageSetup.AnyPage لتحديد حجم و مارجين,و و وضع Css.MediaType إلى الهدف @media print القواعد عند الحاجة.
4) Convert to PDF
مكالمة Converter.ConvertHTML(document, options, path) إرسال ملف 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 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}");
}
}
}
}
ماذا يفعل هذا الرمز
- تحميل HTML من ملف أو شريط في الذاكرة مع URI الأساسية.
- تكوينات الـ
PdfSaveOptionsلقطعة A4، A3 المناظر الطبيعية، وحجم مقياس 6 × 9 بوصة. - تطلب الـ
MediaType.PrintأوMediaType.Screenلتناسب قواعد CSS الخاصة بك. - تصدير 3 ملفات PDF في واحد
out/مجلد.
حل المشكلات & نصائح
- أسلوب خاطئ: طنجة
options.Css.MediaTypeبينPrintوScreenلتناسب لوحة النمط الخاصة بك. - محتوى كليب: زيادة حجم الصفحة أو الحدود؛ تنسيقات أوسع تساعد على لوحات كبيرة.
- الخطوط المفقودة: تأكد من أن الخطوط متاحة للمعهد أو مدمجة عبر
@font-face. - أداء: تبسيط DOM / CSS الثقيل ؛ تفضل الأصول الثابتة المنسوجة.
FAQ
س1: كيف يمكنني تحديد حجم الصفحة والحدود؟? استخدام PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) وحدة من Length (مليميتر أو بوصة).
Q2: هل يمكنني إجبار النمط على الطباعة؟? نعم، مجموعة options.Css.MediaType = MediaType.Print هكذا @media print قواعد تنطبق.
Q3: كيف أقوم بتحويل صفحات المناظر الطبيعية؟? إعطاء المناظر الطبيعية Size (على سبيل المثال، A3 420 × 297 مم) عند إنشاء Page.
Q4: هل يمكنني تصدير العديد من الاختلافات من HTML الواحد؟? خلق منفصل 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
- Aspose.HTML: خروجي PDF المتقدمين في .NET
- HTML إلى تحويل الصورة: دليل شامل مع أمثلة
- تبسيط تحويل HTML إلى الصورة مع Aspose.HTML ل .NET