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
(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
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.

