Převést XML do PDF v Pythonu | Převést XML soubor do PDF

S rostoucím významem aplikací řízených daty nabyla na významu potřeba exportovat data ze souborů XML do všeobecně přijatelného formátu PDF. Tento blogový příspěvek poskytuje podrobného průvodce efektivním převodem XML do PDF v Pythonu. Tak začněme!

V tomto článku se budeme zabývat následujícími tématy:

  1. Knihovna Python pro převod XML do PDF
  2. Převést XML do PDF v Pythonu
  3. Generovat PDF z XML v Pythonu
  4. Převést XML do PDF online
  5. Bezplatné výukové zdroje

Knihovna Pythonu pro převod XML do PDF

Pro generování souborů PDF z XML je nejpřímějším přístupem využití knihovny Aspose.PDF for Python navržené pro převod XML do PDF. Díky jednoduché instalaci a použití poskytuje efektivní řešení pro transformaci dokumentů XML do souborů PDF. Aspose.PDF for Python představuje robustní řešení pro generování, manipulaci a konverzi PDF a nabízí vývojářům bezkonkurenční kontrolu nad pracovními toky dokumentů.

Prosím stáhněte si balíček nebo nainstalujte API z PyPI pomocí následujícího příkazu pip v konzole:

> pip install aspose-pdf

Převeďte XML do PDF v Pythonu

XML můžeme snadno převést na PDF podle následujících kroků:

  1. Vytvořte objekt třídy Document.
  2. Svažte XML pomocí metody Document.bindxml(file) poskytnutím cesty k souboru XML.
  3. Převeďte XML do PDF pomocí metody Document.save(název výstupního souboru).

Následující ukázka kódu ukazuje, jak převést soubor XML na PDF pomocí Pythonu.

import aspose.pdf as ap

# Vytvořte nový dokument PDF
pdfDocument = ap.Document();

# Transformujte a spojte XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Generování PDF z XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Zdrojový soubor XML

Následuje ukázkový soubor XML, který jsme použili k převodu do dokumentu 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>

Vygenerovaný dokument PDF

Převeďte XML do PDF v Pythonu

Převeďte XML do PDF v Pythonu

Generování PDF z XML v Pythonu

Můžeme také vygenerovat PDF dokument ze souboru XML obsahujícího data aplikace. Za tímto účelem jej nejprve převedeme na Aspose.PDF kompatibilní XML pomocí XSLT a poté převedeme do formátu PDF.

Níže jsou ukázková data XML, která potřebujeme převést 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 byla tato data kompatibilní s Aspose.PDF XML, provedeme transformaci XSLT. Za tímto účelem definujeme šablonu v souboru šablony stylů XSLT, jak je znázorněno níže.

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

Jakmile vytvoříme soubor šablony, můžeme vygenerovat PDF podle výše uvedených kroků. Stačí však zavolat metodu Document.bindxml(xmlfile, xslfile) poskytnutím cest k souboru XML a XSLT.

Následující ukázka kódu ukazuje, jak vygenerovat PDF ze souboru XML pomocí Pythonu.

import aspose.pdf as ap

# Vytvořte nový dokument PDF
pdfDocument = ap.Document();

# Transformujte a spojte XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Generování PDF z XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Generujte PDF z XML v Pythonu

Generování PDF z XML v Pythonu

Licence na převod XML do PDF

Můžete získat dočasnou licenci k používání API bez omezení hodnocení.

Převod XML do PDF online

Soubory XML můžete také převádět na dokumenty PDF online pomocí tohoto bezplatného nástroje XML to PDF converter.

Soubor XML do PDF – výukové zdroje

Kromě vytváření souborů XML do dokumentů PDF se dozvíte více o vytváření, manipulaci a převodu dokumentů PDF a prozkoumejte různé další funkce knihovny pomocí zdrojů níže:

Závěr

V tomto článku jste se naučili, jak převést XML do PDF v Pythonu. Podle kroků uvedených v tomto článku můžete tuto funkci snadno integrovat do svých aplikací Python a generovat soubory PDF z XML. V případě jakýchkoli dotazů nás neváhejte kontaktovat prostřednictvím našeho bezplatného fóra podpory.

Viz také