XML sang PDF

Trong bài viết này, chúng tôi sẽ chuyển đổi các tệp XML sang PDF bằng C#. Aspose.PDF for .NET API hỗ trợ rộng rãi tính năng chuyển đổi XML do bao gồm nhiều cải tiến có liên quan, theo yêu cầu của người dùng API. Bạn có thể nâng cao các ứng dụng .NET của mình với tính năng xuất XML sang PDF hiệu quả này. Chúng ta hãy xem xét các trường hợp sử dụng sau liên quan đến chuyển đổi XML sang PDF trong C#:

Chuyển đổi XML sang PDF trong C#

Để chuyển đổi XML thành PDF, bạn cần tuân theo Lược đồ XML của Aspose.PDF for .NET API có sẵn dưới dạng tệp XSD. Sau đây là tệp XML mà chúng tôi sẽ chuyển đổi thành PDF dưới dạng bản trình diễn Hello World.

<?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>

Bạn cần làm theo các bước dưới đây để chuyển đổi tệp XML sang PDF:

  1. Khởi tạo một đối tượng của Document Class
  2. Tải tệp XML bằng phương thức BindXml
  3. Lưu tệp PDF đã chuyển đổi

Đoạn mã sau cho biết cách chuyển đổi XML sang PDF trong C#:

// Khởi tạo đối tượng Tài liệu
Document doc = new Document();
// Liên kết tệp XML nguồn
doc.BindXml(dataDir + "XML.xml");
// Chuyển XML sang PDF
doc.Save(dataDir + "XMLToPDF.pdf");

C# Sử dụng HTML trong XML và Chuyển đổi sang PDF

Đôi khi bạn có thể cần sử dụng HTML trong XML trước khi chuyển đổi sang HTML. Aspose.PDF for .NET API cũng hỗ trợ tính năng này. Tuy nhiên, các thẻ HTML và XML khá giống nhau. Do đó, bạn cần chỉ định thẻ CDATA để HTML không được phân tích cú pháp dưới dạng đánh dấu XML. Tệp XML mẫu bên dưới bao gồm HTML được ký hiệu là CDATA để tránh bất kỳ sự bất thường nào:

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page id="mainSection">
    <HtmlFragment>
      <![CDATA[
        <font style="font-family:Tahoma; font-size:40px;">This is Html String.</font>
        ]]>
    </HtmlFragment>
  </Page>
</Document>

Bạn có thể chuyển đổi tệp XML này sang PDF theo các bước sau:

  1. Khởi tạo đối tượng lớp Document
  2. Tải tệp XML đầu vào
  3. Lưu tệp PDF đầu ra

Đoạn mã dưới đây cho biết cách chuyển đổi tệp XML, chứa HTML, sang PDF trong C#:

// Khởi tạo đối tượng Tài liệu
Document doc = new Document();
// Liên kết tệp XML nguồn
doc.BindXml(dataDir + "XML.xml");
// Chuyển XML sang PDF
doc.Save(dataDir + "XMLToPDF.pdf");

Chuyển đổi XML và XSLT sang PDF trong C#

Đôi khi, bạn có thể có một tệp XML hiện có chứa dữ liệu ứng dụng quan trọng và bạn muốn tạo các báo cáo PDF bằng tệp XML đó. Trong những trường hợp như vậy, bạn có thể tạo tệp XSLT để chuyển đổi tài liệu XML hiện có của mình thành tài liệu XML tương thích của Aspose.PDF. Sau đó, bạn có thể tiến hành chuyển đổi XML sang PDF. Hãy để chúng tôi tìm hiểu điều này với ví dụ đơn giản và cơ bản:

<?xml version="1.0" encoding="utf-8" ?>
<Contents>
  <Content>Hello World!</Content>
</Contents>
<?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ạn có thể nhận thấy rằng tệp XML không tuân theo lược đồ XML của Aspose.PDF for .NET API. Tuy nhiên, tệp XSLT biến nó thành khả năng tương thích bắt buộc. Bây giờ bạn có thể làm theo các bước bên dưới để chuyển đổi XML như vậy bằng XSLT sang PDF:

  1. Khởi tạo PDF Tài liệu
  2. Bind Tệp XML và XSLT
  3. Lưu tài liệu PDF đầu ra

Đoạn mã dưới đây dựa trên các bước này cho biết cách chuyển đổi XML 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 với tài liệu
try
{
    pdf.BindXml(dataDir + "\\HelloWorld.xml", dataDir + "\\HelloWorld.xslt");
}
catch (System.Exception)
{

    throw;
}
            
//Lưu tài liệu
 pdf.Save(dataDir + "HelloWorldUsingXmlAndXslt.pdf");

Sự kết luận

Chúng ta đã học cách chuyển đổi XML thành tệp PDF trong C# miễn là XML tuân theo lược đồ đã đề cập của API. Xem xét mức độ phổ biến và khả năng sử dụng của các thẻ HTML, chúng tôi cũng đã xem xét tình huống khi bạn cần đưa một số mã HTML vào tệp XML nguồn. Ngoài ra, chúng tôi cũng đã khám phá cách chuyển đổi XML và XSLT sang PDF khi tệp XML hiện có không tuân theo lược đồ.

Xem thêm