В этой статье мы будем преобразовывать XML-файлы в PDF с помощью C#. Aspose.PDF for .NET API широко поддерживает функцию преобразования XML из-за включения множества связанных улучшений по запросу пользователей API. Вы можете улучшить свои приложения .NET с помощью этой эффективной функции экспорта XML в PDF. Давайте рассмотрим следующие варианты использования, связанные с преобразованием XML в PDF в C#:
- Преобразование XML в PDF
- Использовать HTML в XML и конвертировать в PDF
- Преобразование XML и XSLT в PDF
Преобразование 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:
- Инициализировать объект класса Document
- Загрузите файл XML с помощью метода BindXml
- Сохраните преобразованный файл 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, выполнив следующие действия:
- Создать объект класса Document
- Загрузите входной XML-файл
- Сохраните выходной 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:
Фрагмент кода ниже основан на этих шагах, которые показывают, как преобразовать 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 не соответствует схеме.