التحويل 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