
XML(eXtensible Markup Language) là một định dạng được sử dụng rộng rãi cho sự tương thích của dữ liệu, trong khi PDF(Portable Document Format) là lựa chọn hàng đầu để tạo và chia sẻ tài liệu ở định dạng có thể đọc và in. Trong hướng dẫn này, chúng ta sẽ khám phá cách chuyển đổi XML sang PDF một cách liền mạch bằng cách sử dụng C#.
Tại sao chuyển đổi XML thành PDF?
Trước khi đi vào chi tiết kỹ thuật, hãy cùng thảo luận ngắn gọn về lý do tại sao bạn có thể cần chuyển đổi XML sang PDF. XML rất tốt để lưu trữ dữ liệu, nhưng nó không thân thiện với người dùng khi nói đến việc trình bày trực quan. PDF, ngược lại, cung cấp định dạng bóng bẩy và tiêu chuẩn để trình bày thông tin. Bằng cách chuyển đổi XML sang PDF, bạn có thể tạo ra các tài liệu nhìn chuyên nghiệp một cách dễ dàng, phù hợp để chia sẻ, in ấn và lưu trữ.
Chuyển đổi XML sang PDF - Cài đặt API C#
Bạn có thể cài đặt Conholdate.Total for .NET ở đầu bạn bằng cách tải xuống tệp DLL hoặc chạy lệnh cài đặt NuGet sau:
PM> NuGet\Install-Package Conholdate.Total
Chuyển đổi XML sang PDF trong C#
Đối với ví dụ chuyển đổi XML sang PDF trong C#, chúng ta sẽ sử dụng tệp XML mẫu sau:
<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
<Page id="mainPage">
<TextFragment>
<TextSegment>Hello</TextSegment>
</TextFragment>
<TextFragment>
<TextSegment>World!</TextSegment>
</TextFragment>
</Page>
</Document>
Tiếp theo, bạn cần làm theo các bước dưới đây để tiếp tục với quá trình chuyển đổi XML sang PDF:
- Khởi tạo một đối tượng lớp Document để tải tệp XML đầu vào.
- Liên kết tệp nguồn với phương thức BindXml.
- Chuyển đổi XML thành PDF bằng phương pháp Save.
Mã mẫu sau đây cho thấy cách chuyển đổi XML thành PDF trong C#:
// Tạo đối tượng Document
Document doc = new Document();
// Liên kết tệp XML nguồn
doc.BindXml(dataDir + "input.xml");
// Chuyển đổi XML sang PDF
doc.Save(dataDir + "XMLToPDF.pdf");
Tuy nhiên, điều đáng chú ý ở đây là tệp XML nguồn cần phải tuân theo XSD schema để thực hiện chuyển đổi.
Chuyển đổi XML và XSLT sang PDF trong C#
Trong một số tình huống, bạn có thể có một tệp XML tùy chỉnh mà bạn cần tạo tài liệu PDF. Vì vậy, bạn có thể tạo một tệp XSLT để xử lý các tệp XML tùy chỉnh như đã giải thích trong các tệp mẫu sau:
Tệp XML mẫu
<?xml version="1.0" encoding="utf-8" ?>
<Contents>
<Content>Hello World!</Content>
</Contents>
Sample XSLT File
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()"/>
<xsl:template match="/Contents">
<html>
<Document xmlns="Aspose.Pdf" IsAutoHyphenated="false">
<PageInfo>
<DefaultTextState
Font = "Helvetica" FontSize="8" LineSpacing="4"/>
<Margin Left="5cm" Right="5cm" Top="3cm" Bottom="15cm" />
</PageInfo>
<Page id="mainSection">
<TextFragment>
<TextSegment>
<xsl:value-of select="Content"/>
</TextSegment>
</TextFragment>
</Page>
</Document>
</html>
</xsl:template>
</xsl:stylesheet>
Bây giờ các bước sau đây giải thích về việc chuyển đổi XML và XSLT thành tài liệu PDF trong C#:
- Tạo một đối tượng của lớp Document.
- Liên kết các tệp XML và XSLT.
- Lưu tài liệu PDF đầu ra.
Mã code bên dưới giải thích cách chuyển đổi XML và XSLT sang PDF trong C#:
//Tạo tài liệu pdf
Aspose.Pdf.Document pdf = new Aspose.Pdf.Document();
//Liên kết các tệp XML và XSLT
try
{
pdf.BindXml("hello-world.xml", "hello-world.xslt");
}
catch (System.Exception)
{
throw;
}
//Save the document
pdf.Save("HelloWorldXml.pdf");
Giấy phép Đánh giá Miễn phí
Bạn có thể yêu cầu một giấy phép tạm thời miễn phí để đánh giá tất cả các tính năng của API mà không có bất kỳ hình mờ hoặc hạn chế nào.
Tổng hợp
Trong hướng dẫn này, bạn đã học được những điều cơ bản về việc chuyển đổi XML sang PDF trong C# cùng với các đoạn mã ví dụ và tập tin mẫu. Nó cho phép bạn biến dữ liệu XML của mình thành các tài liệu PDF hấp dẫn về mặt thị giác và dễ chia sẻ. Dù bạn đang xây dựng công cụ báo cáo, tạo hóa đơn, hay tạo tài liệu, việc chuyển đổi XML sang PDF sẽ giúp đơn giản hóa quy trình chuyển đổi tài liệu trong các ứng dụng của bạn. Trong trường hợp có bất kỳ thắc mắc nào, vui lòng liên hệ với chúng tôi tại forum.