Konwertuj XML na PDF w Python | Konwertuj plik XML na format PDF

Wraz z rosnącym znaczeniem aplikacji opartych na danych, potrzeba eksportowania danych z plików XML do powszechnie akceptowanego formatu PDF zyskała na znaczeniu. Ten wpis na blogu zawiera przewodnik krok po kroku dotyczący wydajnej konwersji formatu XML na format PDF w języku Python. Więc zaczynajmy!

W tym artykule zostaną omówione następujące tematy:

  1. Biblioteka Python do konwersji XML na PDF
  2. Konwertuj XML na PDF w Python
  3. Generuj plik PDF z XML w Python
  4. Konwertuj XML na PDF online
  5. Darmowe zasoby edukacyjne

Biblioteka Python do konwersji XML na PDF

Do generowania plików PDF z XML najprostszą metodą jest wykorzystanie biblioteki Aspose.PDF for Python przeznaczonej do konwersji XML na PDF. Dzięki prostej instalacji i obsłudze stanowi wydajne rozwiązanie do przekształcania dokumentów XML w pliki PDF. Aspose.PDF for Python to solidne rozwiązanie do generowania, manipulacji i konwersji plików PDF, oferujące programistom niezrównaną kontrolę nad obiegiem dokumentów.

Proszę pobierz pakiet lub zainstaluj API z PyPI, używając następującego polecenia pip w konsoli:

> pip install aspose-pdf

Konwertuj XML na PDF w Python

Możemy łatwo przekształcić XML w PDF, wykonując poniższe kroki:

  1. Utwórz obiekt klasy Document.
  2. Powiąż kod XML za pomocą metody Document.bindxml(file), podając ścieżkę pliku XML.
  3. Konwertuj plik XML na format PDF za pomocą metody Document.save(nazwa pliku wyjściowego).

Poniższy przykładowy kod pokazuje, jak przekonwertować plik XML na plik PDF przy użyciu języka Python.

import aspose.pdf as ap

# Utwórz nowy dokument PDF
pdfDocument = ap.Document();

# Przekształć i powiąż XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Wygeneruj plik PDF z XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Źródłowy plik XML

Poniżej znajduje się przykładowy plik XML, który wykorzystaliśmy do konwersji na dokument 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>

Wygenerowany dokument PDF

Konwertuj XML na PDF w Python

Konwertuj XML na PDF w Python

Wygeneruj plik PDF z XML w Python

Możemy także wygenerować dokument PDF z pliku XML zawierającego dane aplikacji. W tym celu najpierw przekształcimy go do formatu XML zgodnego z Aspose.PDF za pomocą XSLT, a następnie przekonwertujemy go do formatu PDF.

Poniżej znajdują się przykładowe dane XML, które musimy przekonwertować do dokumentu 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>

Aby zapewnić zgodność tych danych z formatem XML Aspose.PDF, przeprowadzimy transformację XSLT. W tym celu zdefiniujemy szablon w pliku arkusza stylów XSLT, jak pokazano poniżej.

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

Po utworzeniu pliku szablonu możemy wygenerować plik PDF, wykonując kroki wymienione wcześniej. Wystarczy jednak wywołać metodę Document.bindxml(xmlfile, xslfile), podając ścieżki do plików XML i XSLT.

Poniższy przykładowy kod pokazuje, jak wygenerować plik PDF z pliku XML przy użyciu języka Python.

import aspose.pdf as ap

# Utwórz nowy dokument PDF
pdfDocument = ap.Document();

# Przekształć i powiąż XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Wygeneruj plik PDF z XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Wygeneruj plik PDF z XML w Python

Wygeneruj plik PDF z XML w Python

Licencja na konwerter XML do PDF

Możesz uzyskać tymczasową licencję na korzystanie z interfejsu API bez ograniczeń ewaluacyjnych.

Konwertuj XML na PDF online

Możesz także konwertować pliki XML na dokumenty PDF online, korzystając z tego bezpłatnego narzędzia konwerter XML na PDF.

Plik XML do formatu PDF – zasoby edukacyjne

Oprócz tworzenia plików XML w dokumentach PDF, dowiedz się więcej o tworzeniu, manipulowaniu i konwertowaniu dokumentów PDF oraz poznaj różne inne funkcje biblioteki, korzystając z poniższych zasobów:

Wniosek

W tym artykule nauczyłeś się konwertować XML na PDF w Python. Wykonując kroki opisane w tym artykule, możesz łatwo zintegrować tę funkcję z aplikacjami Python w celu generowania plików PDF z XML. Jeśli masz jakiekolwiek pytania, daj nam znać za pośrednictwem naszego bezpłatnego forum pomocy technicznej.

Zobacz też