Chuyển đổi XML sang PDF bằng Python | Chuyển đổi tệp XML sang PDF

Với sự nổi bật ngày càng tăng của các ứng dụng dựa trên dữ liệu, nhu cầu xuất dữ liệu từ các tệp XML sang định dạng PDF được chấp nhận rộng rãi đã trở nên quan trọng đáng kể. Bài đăng trên blog này cung cấp hướng dẫn từng bước để chuyển đổi XML sang PDF bằng Python một cách hiệu quả. Vì vậy, hãy bắt đầu!

Các chủ đề sau sẽ được đề cập trong bài viết này:

  1. Thư viện Python để chuyển đổi XML sang PDF
  2. Chuyển đổi XML sang PDF bằng Python
  3. Tạo PDF từ XML bằng Python
  4. Chuyển đổi XML sang PDF trực tuyến
  5. Tài nguyên học tập miễn phí

Thư viện Python để chuyển đổi XML sang PDF

Để tạo tệp PDF từ XML, cách tiếp cận đơn giản nhất là tận dụng thư viện Aspose.PDF for Python được thiết kế để chuyển đổi XML sang PDF. Với việc cài đặt và sử dụng đơn giản, nó cung cấp một giải pháp hiệu quả để chuyển đổi tài liệu XML thành tệp PDF. Aspose.PDF dành cho Python là một giải pháp mạnh mẽ để tạo, thao tác và chuyển đổi PDF, cung cấp cho các nhà phát triển khả năng kiểm soát tuyệt vời đối với quy trình làm việc của tài liệu.

Vui lòng tải xuống gói hoặc cài đặt API từ PyPI bằng lệnh pip sau trong bảng điều khiển:

> pip install aspose-pdf

Chuyển đổi XML sang PDF bằng Python

Chúng ta có thể dễ dàng chuyển đổi XML sang PDF bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một đối tượng của lớp Document.
  2. Liên kết XML bằng phương thức Document.bindxml(file) bằng cách cung cấp đường dẫn tệp XML.
  3. Chuyển đổi XML sang PDF bằng phương thức Document.save(outputfilename).

Mẫu mã sau đây cho biết cách chuyển đổi tệp XML thành PDF bằng Python.

import aspose.pdf as ap

# Tạo một tài liệu PDF mới
pdfDocument = ap.Document();

# Chuyển đổi và liên kết XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Tạo PDF từ XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Tệp XML nguồn

Sau đây là tệp XML mẫu mà chúng tôi đã sử dụng để chuyển đổi thành tài liệu PDF.

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page>
    <TextFragment>
      <TextSegment>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla odio lorem, luctus in lorem vitae, accumsan semper lectus. Cras a auctor leo, et tincidunt lacus.</TextSegment>
    </TextFragment>
  </Page>
</Document>

Tài liệu PDF được tạo

Chuyển đổi XML sang PDF bằng Python

Chuyển đổi XML sang PDF bằng Python

Tạo PDF từ XML bằng Python

Chúng tôi cũng có thể tạo tài liệu PDF từ tệp XML chứa dữ liệu ứng dụng. Với mục đích này, trước tiên chúng tôi sẽ chuyển đổi nó thành XML tương thích Aspose.PDF bằng cách sử dụng XSLT, sau đó chuyển đổi nó sang định dạng PDF.

Sau đây là dữ liệu XML mẫu mà chúng ta cần chuyển đổi sang tài liệu PDF.

<?xml version="1.0" encoding="utf-8" ?>
<catalog>
  <cd>
	<Content>Hello World!</Content>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
  <cd>
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <country>UK</country>
    <company>CBS Records</company>
    <price>9.90</price>
    <year>1988</year>
  </cd>
  <cd>
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <country>USA</country>
    <company>RCA</company>
    <price>9.90</price>
    <year>1982</year>
  </cd>
  <cd>
    <title>Still got the blues</title>
    <artist>Gary Moore</artist>
    <country>UK</country>
    <company>Virgin records</company>
    <price>10.20</price>
    <year>1990</year>
  </cd>
  <cd>
    <title>Eros</title>
    <artist>Eros Ramazzotti</artist>
    <country>EU</country>
    <company>BMG</company>
    <price>9.90</price>
    <year>1997</year>
  </cd>
</catalog>

Để làm cho dữ liệu này tương thích với Aspose.PDF XML, chúng tôi sẽ thực hiện chuyển đổi XSLT. Đối với điều này, chúng tôi sẽ xác định một mẫu trong tệp biểu định kiểu XSLT, như hiển thị bên dưới.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
  <Document xmlns="Aspose.Pdf">
  <Page>
	 <PageInfo IsLandscape="false" Height="595" Width="420">
      <Margin Top="71" Bottom="71" Left="28" Right="28" />
    </PageInfo>
    <Header>
        <Margin Top="20" />
        <Table ColumnAdjustment="AutoFitToWindow">
            <Row>
                <Cell Alignment="1">
                    <TextFragment>
                        <TextSegment>Date: 11/01/2024</TextSegment>
                    </TextFragment>
                </Cell>
                <Cell Alignment="3">
                    <TextFragment>
                        <TextSegment>Page $p / $P</TextSegment>
                    </TextFragment>
                </Cell>
            </Row>
        </Table>
    </Header>
    <HtmlFragment>
      <![CDATA[
        <h1 style="font-family:Tahoma; font-size:16pt;">My CD Collection</h1>
        ]]>
    </HtmlFragment>
    <TextFragment>
      <TextSegment>Welcome</TextSegment>
    </TextFragment>
	<Table ColumnAdjustment="AutoFitToWindow" ColumnWidths ="10 10 10 10">
      <DefaultCellPadding Top="5" Left="0" Right="0" Bottom="5" />
      <Border>
        <Top Color="Black"></Top>
        <Bottom Color="Black"></Bottom>
        <Left Color="Black"></Left>
        <Right Color="Black"></Right>
      </Border>
      <Margin Top="15" />
      <Row BackgroundColor="LightGray" MinRowHeight="20">
        <Border>
          <Bottom Color="Black"></Bottom>
        </Border>
        <Cell Alignment="2">
          <TextFragment>
            <TextSegment>Title</TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment>Artist</TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment>Price</TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment>Year</TextSegment>
          </TextFragment>
        </Cell>
      </Row>
	  <xsl:for-each select="catalog/cd">
		<Row>
        <Cell Alignment="2">
          <TextFragment>
            <TextSegment><xsl:value-of select="title"/></TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment><xsl:value-of select="artist"/></TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment><xsl:value-of select="price"/></TextSegment>
          </TextFragment>
        </Cell>
        <Cell>
          <TextFragment>
            <TextSegment><xsl:value-of select="year"/></TextSegment>
          </TextFragment>
        </Cell>
      </Row>
	  </xsl:for-each>
    </Table>
  </Page>
</Document>
</xsl:template>
</xsl:stylesheet>

Khi chúng tôi đã tạo tệp mẫu, chúng tôi có thể tạo tệp PDF bằng cách làm theo các bước được đề cập trước đó. Tuy nhiên, chúng ta chỉ cần gọi phương thức Document.bindxml(xmlfile, xslfile) bằng cách cung cấp đường dẫn tệp XML và XSLT.

Mẫu mã sau đây cho biết cách tạo tệp PDF từ tệp XML bằng Python.

import aspose.pdf as ap

# Tạo một tài liệu PDF mới
pdfDocument = ap.Document();

# Chuyển đổi và liên kết XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Tạo PDF từ XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Tạo PDF từ XML bằng Python

Tạo PDF từ XML bằng Python

Giấy phép chuyển đổi XML sang PDF

Bạn có thể xin giấy phép tạm thời để sử dụng API mà không bị giới hạn về đánh giá.

Chuyển đổi XML sang PDF trực tuyến

Bạn cũng có thể chuyển đổi trực tuyến các tệp XML thành tài liệu PDF bằng công cụ [Trình chuyển đổi XML sang PDF] miễn phí này.

Tệp XML sang PDF – Tài nguyên học tập

Bên cạnh việc tạo tệp XML thành tài liệu PDF, hãy tìm hiểu thêm về cách tạo, thao tác và chuyển đổi tài liệu PDF cũng như khám phá nhiều tính năng khác của thư viện bằng cách sử dụng các tài nguyên bên dưới:

Phần kết luận

Trong bài viết này, bạn đã học cách chuyển đổi XML sang PDF bằng Python. Bằng cách làm theo các bước được nêu trong bài viết này, bạn có thể dễ dàng tích hợp tính năng này vào các ứng dụng Python của mình để tạo tệp PDF từ XML. Trong trường hợp bạn có bất kỳ câu hỏi nào, vui lòng cho chúng tôi biết qua diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm