Converti XML in PDF in Python | Converti file XML in PDF

Con la crescente importanza delle applicazioni basate sui dati, la necessità di esportare dati da file XML nel formato universalmente accettabile PDF ha acquisito un’importanza significativa. Questo post del blog fornisce una guida passo passo per convertire in modo efficiente XML in PDF in Python. Allora cominciamo!

In questo articolo verranno trattati i seguenti argomenti:

  1. Libreria Python per convertire XML in PDF
  2. Converti XML in PDF in Python
  3. Genera PDF da XML in Python
  4. Converti XML in PDF online
  5. Risorse didattiche gratuite

Libreria Python per convertire XML in PDF

Per generare file PDF da XML, l’approccio più semplice è sfruttare la libreria Aspose.PDF for Python progettata per la conversione da XML a PDF. Con installazione e utilizzo semplici, fornisce una soluzione efficiente per trasformare documenti XML in file PDF. Aspose.PDF for Python rappresenta una soluzione solida per la generazione, la manipolazione e la conversione di PDF, offrendo agli sviluppatori un controllo senza precedenti sui flussi di lavoro dei documenti.

Per favore scarica il pacchetto o installa l’API da PyPI utilizzando il seguente comando pip nella console:

> pip install aspose-pdf

Converti XML in PDF in Python

Possiamo trasformare facilmente XML in PDF seguendo i passaggi seguenti:

  1. Crea un oggetto della classe Documento.
  2. Associare XML utilizzando il metodo Document.bindxml(file) fornendo il percorso del file XML.
  3. Converti XML in PDF utilizzando il metodo Document.save(outputfilename).

L’esempio di codice seguente mostra come convertire un file XML in un PDF utilizzando Python.

import aspose.pdf as ap

# Crea un nuovo documento PDF
pdfDocument = ap.Document();

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

# Genera PDF da XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

File XML di origine

Quello che segue è il file XML di esempio che abbiamo utilizzato per convertire nel 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 generato

Converti XML in PDF in Python

Converti XML in PDF in Python

Genera PDF da XML in Python

Possiamo anche generare un documento PDF dal file XML contenente i dati dell’applicazione. A questo scopo, lo trasformeremo prima nell’XML compatibile con Aspose.PDF utilizzando XSLT e poi lo convertiremo nel formato PDF.

Di seguito sono riportati i dati XML di esempio che dobbiamo convertire nel 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>

Per rendere questi dati compatibili con l’XML Aspose.PDF, eseguiremo una trasformazione XSLT. Per questo, definiremo un modello in un file di foglio di stile XSLT, come mostrato di seguito.

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

Una volta creato il file modello, possiamo generare un PDF seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo chiamare il metodo Document.bindxml(xmlfile, xslfile) fornendo i percorsi dei file XML e dei file XSLT.

L’esempio di codice seguente mostra come generare un PDF da un file XML utilizzando Python.

import aspose.pdf as ap

# Crea un nuovo documento PDF
pdfDocument = ap.Document();

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

# Genera PDF da XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Genera PDF da XML in Python

Genera PDF da XML in Python

Licenza di conversione da XML a PDF

Puoi ottenere una licenza temporanea per utilizzare l’API senza limitazioni di valutazione.

Converti XML in PDF online

Puoi anche convertire file XML in documenti PDF online utilizzando questo strumento gratuito convertitore da XML a PDF.

File XML in PDF – Risorse didattiche

Oltre a creare file XML in documenti PDF, scopri di più sulla creazione, manipolazione e conversione di documenti PDF ed esplora varie altre funzionalità della libreria utilizzando le risorse seguenti:

Conclusione

In questo articolo hai imparato come convertire XML in PDF in Python. Seguendo i passaggi descritti in questo articolo, puoi facilmente integrare questa funzionalità nelle tue applicazioni Python per generare file PDF da XML. In caso di domande, non esitate a farcelo sapere tramite il nostro forum di supporto gratuito.

Guarda anche