XML в PDF

В этой статье мы будем преобразовывать XML-файлы в PDF с помощью C#. Aspose.PDF for .NET API широко поддерживает функцию преобразования XML из-за включения множества связанных улучшений по запросу пользователей API. Вы можете улучшить свои приложения .NET с помощью этой эффективной функции экспорта XML в PDF. Давайте рассмотрим следующие варианты использования, связанные с преобразованием XML в PDF в C#:

Преобразование XML в PDF на C#

Для преобразования XML в PDF необходимо следовать XML-схеме Aspose.PDF для .NET API, которая доступна в виде XSD-файла. Ниже приведен XML-файл, который мы будем конвертировать в PDF в качестве демонстрации Hello World.

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page id="mainPage">
    <TextFragment>
      <TextSegment>Hello</TextSegment>
    </TextFragment>
 
    <TextFragment>
      <TextSegment>World!</TextSegment>
    </TextFragment>
  </Page>
</Document>

Вам необходимо выполнить следующие шаги, чтобы преобразовать XML в файл PDF:

  1. Инициализировать объект класса Document
  2. Загрузите файл XML с помощью метода BindXml
  3. Сохраните преобразованный файл PDF

Следующий фрагмент кода показывает, как преобразовать XML в PDF на C#:

// Создать объект документа
Document doc = new Document();
// Привязать исходный XML-файл
doc.BindXml(dataDir + "XML.xml");
// Преобразование XML в PDF
doc.Save(dataDir + "XMLToPDF.pdf");

C# Использовать HTML в XML и конвертировать в PDF

Иногда вам может понадобиться использовать HTML в XML перед преобразованием в HTML. Aspose.PDF для .NET API также поддерживает эту функцию. Однако теги HTML и XML очень похожи. Поэтому вам необходимо указать тег CDATA, чтобы HTML не анализировался как XML-разметка. Ниже пример XML-файла включает HTML, обозначенный CDATA, чтобы избежать каких-либо аномалий:

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page id="mainSection">
    <HtmlFragment>
      <![CDATA[
        <font style="font-family:Tahoma; font-size:40px;">This is Html String.</font>
        ]]>
    </HtmlFragment>
  </Page>
</Document>

Вы можете преобразовать этот файл XML в PDF, выполнив следующие действия:

  1. Создать объект класса Document
  2. Загрузите входной XML-файл
  3. Сохраните выходной PDF-файл

Ниже фрагмент кода показывает, как преобразовать XML-файл, содержащий HTML, в PDF на C#:

// Создать объект документа
Document doc = new Document();
// Привязать исходный XML-файл
doc.BindXml(dataDir + "XML.xml");
// Преобразование XML в PDF
doc.Save(dataDir + "XMLToPDF.pdf");

Преобразование XML и XSLT в PDF на C#

Иногда у вас может быть существующий XML-файл, содержащий важные данные приложения, и вы хотите создавать отчеты в формате PDF с использованием этого XML-файла. В таких случаях вы можете создать XSLT-файл, чтобы преобразовать существующий XML-документ в XML-документ, совместимый с Aspose.PDF. Затем вы можете приступить к конвертации XML в PDF. Давайте узнаем это на простом и базовом примере:

<?xml version="1.0" encoding="utf-8" ?>
<Contents>
  <Content>Hello World!</Content>
</Contents>
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="text()"/>
    <xsl:template match="/Contents">
    <html>
      <Document xmlns="Aspose.Pdf" IsAutoHyphenated="false">
        <PageInfo>
          <DefaultTextState
                            Font = "Helvetica" FontSize="8" LineSpacing="4"/>
          <Margin Left="5cm" Right="5cm" Top="3cm" Bottom="15cm" />
        </PageInfo>
        <Page id="mainSection">
          <TextFragment>
            <TextSegment>
              <xsl:value-of select="Content"/>
            </TextSegment>
          </TextFragment>
        </Page>
      </Document>
    </html>
</xsl:template>
</xsl:stylesheet>

Вы можете заметить, что XML-файл не соответствует XML-схеме Aspose.PDF для .NET API. Однако файл XSLT преобразует его в требуемую совместимость. Теперь вы можете выполнить следующие шаги, чтобы преобразовать такой XML с помощью XSLT в PDF:

  1. Инициализировать PDF Документ
  2. Bind Файл XML и XSLT
  3. Сохраните выходной PDF-документ

Фрагмент кода ниже основан на этих шагах, которые показывают, как преобразовать XML в PDF на C#:

//Создать pdf-документ
Aspose.Pdf.Document pdf = new Aspose.Pdf.Document();
//Привязать файлы XML и XSLT к документу
try
{
    pdf.BindXml(dataDir + "\\HelloWorld.xml", dataDir + "\\HelloWorld.xslt");
}
catch (System.Exception)
{

    throw;
}
            
//Сохраните документ
 pdf.Save(dataDir + "HelloWorldUsingXmlAndXslt.pdf");

Вывод

Мы научились преобразовывать XML в файл PDF на C# при условии, что XML следует указанной схеме API. Учитывая популярность и удобство HTML-тегов, мы также рассмотрели сценарий, когда вам нужно включить какой-то HTML-код в исходный XML-файл. Кроме того, мы также изучили, как преобразовать XML и XSLT в PDF, если существующий файл XML не соответствует схеме.

Смотрите также