Konvertera XML till PDF i Python | Konvertera XML-fil till PDF

Med den växande framträdandet av datadrivna applikationer har behovet av att exportera data från XML-filer till det universellt acceptabla PDF-formatet fått stor betydelse. Det här blogginlägget ger en steg-för-steg-guide för att effektivt konvertera XML till PDF i Python. Så låt oss börja!

Följande ämnen kommer att behandlas i den här artikeln:

  1. Python Library för att konvertera XML till PDF
  2. Konvertera XML till PDF i Python
  3. Generera PDF från XML i Python
  4. Konvertera XML till PDF online
  5. Gratis läranderesurser

Python-bibliotek för att konvertera XML till PDF

För att generera PDF-filer från XML är det enklaste tillvägagångssättet att utnyttja biblioteket Aspose.PDF for Python som är designat för konvertering från XML till PDF. Med enkel installation och användning ger den en effektiv lösning för att omvandla XML-dokument till PDF-filer. Aspose.PDF för Python står som en robust lösning för PDF-generering, manipulering och konvertering, och erbjuder utvecklare oöverträffad kontroll över dokumentarbetsflöden.

Vänligen ladda ner paketet eller installera API:et från PyPI med följande pip-kommando i konsolen:

> pip install aspose-pdf

Konvertera XML till PDF i Python

Vi kan enkelt omvandla XML till PDF genom att följa stegen nedan:

  1. Skapa ett objekt av klassen Document.
  2. Bind XML med metoden Document.bindxml(file) genom att ange XML-filsökvägen.
  3. Konvertera XML till PDF med metoden Document.save(outputfilename).

Följande kodexempel visar hur man konverterar en XML-fil till en PDF med Python.

import aspose.pdf as ap

# Skapa ett nytt PDF-dokument
pdfDocument = ap.Document();

# Transformera och binda XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Skapa PDF från XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Käll-XML-fil

Följande är exempel på XML-filen som vi använde för att konvertera till PDF-dokumentet.

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

Genererat PDF-dokument

Konvertera XML till PDF i Python

Konvertera XML till PDF i Python

Generera PDF från XML i Python

Vi kan också generera ett PDF-dokument från XML-filen som innehåller applikationsdata. För detta ändamål kommer vi först att omvandla den till Aspose.PDF-kompatibel XML med XSLT och sedan konvertera den till PDF-formatet.

Följande är exempel på XML-data som vi behöver för att konvertera till PDF-dokumentet.

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

För att göra dessa data kompatibla med Aspose.PDF XML kommer vi att utföra en XSLT-transformation. För detta kommer vi att definiera en mall i en XSLT-formatmallsfil, som visas nedan.

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

När vi har skapat mallfilen kan vi generera en PDF genom att följa stegen som nämnts tidigare. Men vi behöver bara anropa metoden Document.bindxml(xmlfile, xslfile) genom att tillhandahålla sökvägar till XML-filer och XSLT-filer.

Följande kodexempel visar hur man genererar en PDF från en XML-fil med Python.

import aspose.pdf as ap

# Skapa ett nytt PDF-dokument
pdfDocument = ap.Document();

# Transformera och binda XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Generera PDF från XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Generera PDF från XML i Python

Generera PDF från XML i Python

XML till PDF-konverteringslicens

Du kan få en tillfällig licens för att använda API:t utan utvärderingsbegränsningar.

Konvertera XML till PDF online

Du kan också konvertera XML-filer till PDF-dokument online med detta kostnadsfria verktyg XML till PDF-konverterare.

XML-fil till PDF – Lärresurser

Förutom att skapa XML-filer till PDF-dokument kan du lära dig mer om att skapa, manipulera och konvertera PDF-dokument och utforska olika andra funktioner i biblioteket med hjälp av resurserna nedan:

Slutsats

I den här artikeln har du lärt dig hur du konverterar XML till PDF i Python. Genom att följa stegen som beskrivs i den här artikeln kan du enkelt integrera den här funktionen i dina Python-applikationer för att generera PDF-filer från XML. Om du har några frågor är du välkommen att meddela oss via vårt gratis supportforum.

Se även