Перетворення XML у PDF на Python | Перетворення файлу XML на PDF

Із зростанням популярності програм, що керуються даними, потреба експортувати дані з файлів XML у загальноприйнятий формат PDF набула значного значення. Ця публікація блогу містить покроковий посібник із ефективного перетворення XML у PDF на Python. Тож почнемо!

У цій статті будуть розглянуті такі теми:

  1. Бібліотека Python для перетворення XML у PDF
  2. Перетворення XML у PDF на Python
  3. Створення PDF з XML у Python
  4. Конвертувати XML у PDF онлайн
  5. Безкоштовні навчальні ресурси

Бібліотека Python для перетворення XML у PDF

Для створення PDF-файлів із XML найпростішим підходом є використання бібліотеки Aspose.PDF for Python, розробленої для перетворення XML у PDF. Завдяки простому встановленню та використанню він забезпечує ефективне рішення для перетворення документів XML у файли PDF. Aspose.PDF for Python є надійним рішенням для створення PDF-файлів, обробки та перетворення, пропонуючи розробникам безпрецедентний контроль над робочими процесами документів.

Завантажте пакет або встановіть API з PyPI за допомогою такої команди pip у консолі:

> pip install aspose-pdf

Перетворюйте XML у PDF на Python

Ми можемо легко перетворити XML у PDF, виконавши наведені нижче дії.

  1. Створіть об’єкт класу Document.
  2. Зв’яжіть XML за допомогою методу Document.bindxml(file), вказавши шлях до файлу XML.
  3. Перетворіть XML у PDF за допомогою методу Document.save(outputfilename).

У наведеному нижче прикладі коду показано, як конвертувати XML-файл у PDF за допомогою Python.

import aspose.pdf as ap

# Створіть новий документ PDF
pdfDocument = ap.Document();

# Перетворення та зв'язування XML
pdfDocument.bind_xml( "C:\\Files\\sample.xml");

# Створення PDF з XML
pdfDocument.save( "C:\\Files\\generated-pdf.pdf");

Вихідний файл XML

Нижче наведено зразок файлу XML, який ми використовували для перетворення в документ 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>

Згенерований PDF-документ

Перетворюйте XML у PDF на Python

Перетворюйте XML у PDF на Python

Створіть PDF із XML у Python

Ми також можемо створити PDF-документ із XML-файлу, що містить дані програми. Для цього ми спочатку перетворимо його на сумісний з Aspose.PDF XML за допомогою XSLT, а потім перетворимо у формат PDF.

Нижче наведено приклад XML-даних, які нам потрібно перетворити на 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>

Щоб зробити ці дані сумісними з Aspose.PDF XML, ми виконаємо перетворення XSLT. Для цього ми визначимо шаблон у файлі таблиці стилів XSLT, як показано нижче.

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

Після того, як ми створили файл шаблону, ми можемо створити PDF, виконавши кроки, згадані раніше. Однак нам просто потрібно викликати метод Document.bindxml(xmlfile, xslfile), надавши шляхи до файлу XML і XSLT.

У наведеному нижче прикладі коду показано, як створити PDF-файл із XML-файлу за допомогою Python.

import aspose.pdf as ap

# Створіть новий документ PDF
pdfDocument = ap.Document();

# Перетворення та зв'язування XML
pdfDocument.bind_xml( "C:\\Files\\data.xml",  "C:\\Files\\template.xslt");

# Створення PDF з XML
pdfDocument.save( "C:\\Files\\generated-pdf-table.pdf");
Створіть PDF із XML у Python

Створіть PDF із XML у Python

Ліцензія на конвертер XML у PDF

Ви можете отримати тимчасову ліцензію, щоб використовувати API без оціночних обмежень.

Перетворення XML на PDF онлайн

Ви також можете конвертувати XML-файли в PDF-документи онлайн за допомогою цього безкоштовного інструменту XML to PDF converter.

Файл XML у PDF – навчальні ресурси

Окрім створення XML-файлів у PDF-документи, дізнайтеся більше про створення, обробку та перетворення PDF-документів, а також ознайомтеся з різними іншими функціями бібліотеки за допомогою наведених нижче ресурсів:

Висновок

У цій статті ви дізналися, як конвертувати XML у PDF на Python. Дотримуючись кроків, описаних у цій статті, ви можете легко інтегрувати цю функцію у свої програми Python для створення PDF-файлів із XML. Якщо у вас виникли запитання, не соромтеся повідомити нас через наш безкоштовний форум підтримки.

Дивись також