Převedení HTML na PDF je běžné – od faktur po zprávy – ale výchozí nastavení zřídka odpovídají vašim požadavkům na značku a tisk. Aspose.HTML for .NET,Můžete přesně kontrolovat Velikost stránky, Marže, Orientace,a CSS Media Pravidla Tento návod ukazuje čisté, opakovatelné nastavení a obsahuje kompletní vzorek C#.

Key Takeaways

  • Použijte Converter.ConvertHTML s PdfSaveOptions Pro robustní HTML → PDF konverzi.
  • Konfigurovat PageSetup.AnyPage 2 set Velikost a Marže (A4/A3/custom) – vyberte velikost portrétu nebo krajiny.
  • Aplikovat options.Css.MediaType (Princův vs obrazovkya správné CSS.
  • Generovat více variant (např., A4 portrét + A3 krajina) ze stejného HTML pro různé publikum.

Průvodce krok za krokem

1) Set up the project

Nainstalujte balíček NuGet a vytvořte projekt konzole (kroky v Jak běhat).

2) Load HTML content

Stahování stávajícího souboru nebo vytvoření HTMLDocument Závěsný nástroj. poskytnout a Základna URI Rozhoduje o CSS, obrázcích a písmech.

3) Configure page geometry and media

Použijte PdfSaveOptions.PageSetup.AnyPage Definovat Velikost a Marginová,a set Css.MediaType 2 Cíle @media print Pravidla v případě potřeby.

4) Convert to PDF

volání Converter.ConvertHTML(document, options, path) Jak napsat PDF soubor.

Kompletní, kompilovatelný příklad (C#)

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}");
            }
        }
    }
}

Co tento kód dělá

  • Loadů HTML z souboru nebo řetězce v paměti s URI.
  • Konfigurace sePdfSaveOptions pro portrét A4, krajinu A3 a vlastní velikost 6×9 palců.
  • Aplikuje seMediaType.Print nebo MediaType.Screen Přizpůsobte se vašim CSS pravidlům.
  • Exporty Tři přizpůsobené PDF do jednoho out/ Zobrazit folder.

Řešení problémů a tipy

  • Nesprávný styl:• Toggle options.Css.MediaType Mezi Print a Screen Přizpůsobit se vašemu stylovému listu.
  • Zkrácený obsah:Zvýšení velikosti stránky nebo okrajů; širší formáty pomáhají pro velké tabulky.
  • Chybějící zdroje: zajistěte, aby byly písma k dispozici renderu nebo vložené prostřednictvím @font-face.
  • Výkonnost:Zjednodušte těžké DOM/CSS; upřednostněte vyrovnané statické aktivum.

FAQ

Q1.Jak nastavit velikost a okraj stránky? Použijte PdfSaveOptions.PageSetup.AnyPage = new Page(Size, Margin) Jednotky z Length (v milimetrech nebo centimetrech).

Q2.Mohu tlačit stylové tiskárny? Ano, set options.Css.MediaType = MediaType.Print Taková @media print Pravidla se uplatňují.

Q3. jak mohu zobrazit stránky krajiny? Poskytněte krajinářství Size (např. A3 420 × 297 mm) při vytváření Page.

Q4.Mohu exportovat více variant z jednoho HTML? Vytvořte samostatně PdfSaveOptions Objekty (rozdílné Css.MediaType a velikost) a volání Converter.ConvertHTML Pro každého.

Q5 Potřebuji nainstalovat prohlížečový motor? No. Aspose.HTML renderuje serverovou stránku bez externích prohlížečů.

Závěr

Používání PdfSaveOptions Aplikace CSS s rozlišením médií umožňuje vytvářet leštěné PDF soubory přizpůsobené potřebám tisku, archivace nebo výkonné správy. Začněte s portrétem A4 pro obecné dokumenty, přidejte krajinu A3 pro široké rozložení a ponechte si vlastní velikost pro brožury nebo zprávy.

More in this category