Przejdź do treści stopki
PORóWNANIA PRODUKTóW

Porównanie konwerterów HTML do PDF: Darmowe vs Płatne biblioteki dla .NET

XML nie może renderować bezpośrednio do PDF, dlatego proces przebiega w dwóch krokach: arkusz stylów XSLT przekształca XML na HTML, a następnie IronPDF renderuje ten HTML do PDF za pomocą swojego silnika Chrome. IronPDF odpowiada tylko za ostatni etap; XSLT wykonuje formowanie. To rozdzielenie oddziela dane (XML) od prezentacji (arkusz stylów), a poniższe przypadki użycia opierają się na tym.

using IronPdf;
using System.IO;
using System.Xml;
using System.Xml.Xsl;

var transform = new XslCompiledTransform();
transform.Load("invoice.xslt");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, null, writer);
}

new ChromePdfRenderer()
    .RenderHtmlAsPdf(writer.ToString())
    .SaveAs("invoice.pdf");
using IronPdf;
using System.IO;
using System.Xml;
using System.Xml.Xsl;

var transform = new XslCompiledTransform();
transform.Load("invoice.xslt");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, null, writer);
}

new ChromePdfRenderer()
    .RenderHtmlAsPdf(writer.ToString())
    .SaveAs("invoice.pdf");
Imports IronPdf
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl

Dim transform As New XslCompiledTransform()
transform.Load("invoice.xslt")

Using writer As New StringWriter()
    Using reader As XmlReader = XmlReader.Create("invoice.xml")
        transform.Transform(reader, Nothing, writer)
    End Using

    Dim renderer As New ChromePdfRenderer()
    renderer.RenderHtmlAsPdf(writer.ToString()).SaveAs("invoice.pdf")
End Using
$vbLabelText   $csharpLabel

(Uwaga: Transform zapisuje do StringWriter; nie zwraca to HTML, więc odczytujesz writer.ToString() po wywołaniu.)

Fakturowanie elektroniczne i formaty faktur z czytelnym dla maszyn

Tutaj pipeline przynosi największe korzyści. Standardy takie jak UBL, Factur-X i ZUGFeRD przenoszą faktury jako dane XML, a nie jako dokumenty, które można odczytać. Arkusz stylów przekształca ten XML w sformatowaną fakturę, a IronPDF produkuje PDF, który człowiek rzeczywiście otrzymuje.

Regulowane przepływy danych w finansach, administracji i ochronie zdrowia

Te branże wymieniają strukturyzowane XML: deklaracje podatkowe, sprawozdania finansowe, dokumenty kliniczne, zgłoszenia regulacyjne. Każda struktura mapuje na zgodny wydrukowany układ za pomocą własnego arkusza stylów, z logiką transformacji wyłączoną z C#.

Katalogi produktów i cenniki

Katalog w XML staje się sformatowaną broszurą lub tabelą poprzez arkusz stylów, ze stylingiem prowadzonym przez znajome HTML i CSS zamiast własnego języka PDF.

Jedno źródło, wiele wariantów dokumentów

Ponieważ prezentacja znajduje się w szablonie, jedno źródło XML może wygenerować kilka wyjść (faktura dla klienta, kopia wewnętrzna, wersja lokalizowana) poprzez zamianę arkuszy stylów. Brak zmian w danych, brak rekompilacji.

Dokumenty parametryzowane i warunkowe

Przekaż wartości wykonawcze do przekształcenia za pomocą XsltArgumentList, aby jeden szablon mógł rozgałęziać się na walucie, regionie lub statusie szkicu przed renderowaniem:

var args = new XsltArgumentList();
args.AddParam("currency", "", "AUD");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, args, writer);
}
var args = new XsltArgumentList();
args.AddParam("currency", "", "AUD");

using var writer = new StringWriter();
using (var reader = XmlReader.Create("invoice.xml"))
{
    transform.Transform(reader, args, writer);
}
Imports System.Xml
Imports System.Xml.Xsl
Imports System.IO

Dim args As New XsltArgumentList()
args.AddParam("currency", "", "AUD")

Using writer As New StringWriter()
    Using reader As XmlReader = XmlReader.Create("invoice.xml")
        transform.Transform(reader, args, writer)
    End Using
End Using
$vbLabelText   $csharpLabel

Kiedy nie używać

Dla prostej struktury XML lub jednorazowej konwersji, warstwa XSLT jest zbędnym obciążeniem; przeparsuj XML i zbuduj HTML bezpośrednio. Podejście z arkuszem stylów sprawdza się w systemach obsługujących różnorodne schematy lub wymagających łatwej w utrzymaniu, wielokrotnego użycia logiki transformacji.

Dlaczego podział jest istotny

Moc pipeline'u tkwi w tym oddzieleniu. IronPDF oferuje dokładne renderowanie pikseli w ostatnim kroku, ale elastyczność, wiele formatów, układy warunkowe, niezależność od schematów, wszystko to wynika z utrzymania transformacji w XSLT zamiast w kodzie.

Często Zadawane Pytania

Czy IronPDF może bezpośrednio konwertować XML na PDF?

Nie bezpośrednio. Pipeline działa w dwóch krokach: arkusz XSLT przekształca XML na HTML, a następnie IronPDF renderuje ten HTML do PDF przez swój silnik Chrome. IronPDF obsługuje tylko końcowy krok renderowania.

Jak przekonwertować XML na PDF w C# używając XSLT i IronPDF?

Załaduj plik XSLT za pomocą XslCompiledTransform, przekształć XML w ciąg HTML używając StringWriter, a następnie przekaż ten ciąg do ChromePdfRenderer.RenderHtmlAsPdf. Zwróć uwagę, że Transform zapisuje do writer — wywołaj writer.ToString(), aby uzyskać HTML po zakończeniu przekształcenia.

Jakie są zalety używania XSLT do przekształcania XML przed renderowaniem do PDF?

Oddzielenie danych (XML) od prezentacji (arkusz XSLT) oznacza, że jedno źródło XML może wytwarzać wiele wariantów dokumentów (faktura dla klienta, kopia wewnętrzna, wersja lokalizowana) poprzez zamianę arkuszy stylów. Logika przekształcania pozostaje poza kodem C# i może być ponownie używana w różnych schematach.

Czy można przekazywać parametry do przekształcania XSLT w czasie wykonywania?

Tak. Użyj XsltArgumentList z AddParam, aby przekazać wartości takie jak waluta, region czy status szkicu do arkusza stylów przed renderowaniem. Szablon może wtedy na tych wartościach opierać się, aby wytworzyć warunkowe dane wyjściowe.

Jakie standardy e-fakturowania obsługuje ten pipeline?

Pipeline XSLT może obsługiwać każdy standard faktur oparty na XML, w tym UBL (Universal Business Language), Factur-X i ZUGFeRD. Te formaty zawierają dane faktur jako strukturalny XML; odpowiadający arkusz XSLT przekształca każdy format w czytelny dla człowieka układ HTML, który IronPDF renderuje do PDF.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie