Converter XML em PDF em Python | Converter arquivo XML em PDF

Com a crescente importância dos aplicativos orientados a dados, a necessidade de exportar dados de arquivos XML para o formato universalmente aceitável PDF ganhou importância significativa. Esta postagem do blog fornece um guia passo a passo para converter XML em PDF com eficiência em Python. Então vamos começar!

Os seguintes tópicos serão abordados neste artigo:

  1. Biblioteca Python para converter XML em PDF
  2. Converta XML em PDF em Python
  3. Gerar PDF de XML em Python
  4. Converter XML para PDF on-line
  5. Recursos de aprendizagem gratuitos

Biblioteca Python para converter XML em PDF

Para gerar arquivos PDF a partir de XML, a abordagem mais direta é aproveitar a biblioteca Aspose.PDF for Python projetada para conversão de XML em PDF. Com instalação e uso simples, oferece uma solução eficiente para transformar documentos XML em arquivos PDF. Aspose.PDF para Python se destaca como uma solução robusta para geração, manipulação e conversão de PDF, oferecendo aos desenvolvedores um controle incomparável sobre fluxos de trabalho de documentos.

Por favor baixe o pacote ou instale a API de PyPI usando o seguinte comando pip no console:

> pip install aspose-pdf

Converta XML em PDF em Python

Podemos facilmente transformar XML em PDF seguindo as etapas abaixo:

  1. Crie um objeto da classe Document.
  2. Vincule XML usando o método Document.bindxml(file) fornecendo o caminho do arquivo XML.
  3. Converta XML em PDF usando o método Document.save(outputfilename).

O exemplo de código a seguir mostra como converter um arquivo XML em PDF usando Python.

import aspose.pdf as ap

# Crie um novo documento PDF
pdfDocument = ap.Document();

# Transformar e vincular XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Gerar PDF a partir de XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Arquivo XML de origem

A seguir está o arquivo XML de exemplo que usamos para converter em documento 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>

Documento PDF gerado

Converta XML em PDF em Python

Converta XML em PDF em Python

Gere PDF de XML em Python

Também podemos gerar um documento PDF a partir do arquivo XML contendo os dados da aplicação. Para isso, primeiro iremos transformá-lo para o XML compatível com Aspose.PDF usando XSLT e depois convertê-lo para o formato PDF.

A seguir estão os dados XML de exemplo que precisamos converter para o documento 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>

Para tornar esses dados compatíveis com o XML Aspose.PDF, realizaremos uma transformação XSLT. Para isso, definiremos um template em um arquivo de folha de estilo XSLT, conforme mostrado abaixo.

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

Depois de criar o arquivo de modelo, podemos gerar um PDF seguindo as etapas mencionadas anteriormente. No entanto, só precisamos chamar o método Document.bindxml(xmlfile, xslfile) fornecendo caminhos de arquivo XML e XSLT.

O exemplo de código a seguir mostra como gerar um PDF a partir de um arquivo XML usando Python.

import aspose.pdf as ap

# Crie um novo documento PDF
pdfDocument = ap.Document();

# Transformar e vincular XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Gerar PDF a partir de XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Gere PDF de XML em Python

Gere PDF de XML em Python

Licença do conversor XML para PDF

Você pode obter uma licença temporária para usar a API sem limitações de avaliação.

Converter XML para PDF on-line

Você também pode converter arquivos XML em documentos PDF online usando esta ferramenta gratuita conversor de XML para PDF.

Arquivo XML para PDF – Recursos de aprendizagem

Além de criar arquivos XML em documentos PDF, aprenda mais sobre como criar, manipular e converter documentos PDF e explore vários outros recursos da biblioteca usando os recursos abaixo:

Conclusão

Neste artigo, você aprendeu como converter XML em PDF em Python. Seguindo as etapas descritas neste artigo, você pode integrar facilmente esse recurso em seus aplicativos Python para gerar arquivos PDF a partir de XML. Caso você tenha alguma dúvida, sinta-se à vontade para nos informar através do nosso fórum de suporte gratuito.

Veja também