XML para PDF

Neste artigo, converteremos arquivos XML em PDF usando C#. Aspose.PDF for .NET API suporta amplamente o recurso de conversão XML devido às inclusões de muitos aprimoramentos relacionados, conforme solicitado pelos usuários da API. Você pode elevar seus aplicativos .NET com esse recurso eficiente de exportação de XML para PDF. Vamos considerar os seguintes casos de uso relacionados à conversão de XML para PDF em C#:

Converter XML para PDF em C#

Para converter um XML para PDF, você precisa seguir o XML Schema of Aspose.PDF for .NET API que está disponível como arquivo XSD. A seguir está um arquivo XML que converteremos em PDF como uma demonstração do 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>

Você precisa seguir as etapas abaixo para converter XML para arquivo PDF:

  1. Inicialize um objeto da classe Document
  2. Carregar arquivo XML com o método BindXml
  3. Salve o arquivo PDF convertido

O trecho de código a seguir mostra como converter XML em PDF em C#:

// Instanciar objeto Documento
Document doc = new Document();
// Vincular arquivo XML de origem
doc.BindXml(dataDir + "XML.xml");
// Converter XML para PDF
doc.Save(dataDir + "XMLToPDF.pdf");

C# Use HTML em XML e converta em PDF

Às vezes, você pode precisar usar HTML em XML antes da conversão para HTML. Aspose.PDF para .NET API também suporta esse recurso. No entanto, as tags HTML e XML são bastante semelhantes. Portanto, você precisa especificar a marca CDATA para que o HTML não seja analisado como marcação XML. O arquivo XML de amostra abaixo inclui HTML denotado por CDATA para evitar qualquer anomalia:

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

Você pode converter este arquivo XML em PDF com as seguintes etapas:

  1. Instanciar objeto de classe Document
  2. Carregar o arquivo XML de entrada
  3. Salve o arquivo PDF de saída

O trecho de código abaixo mostra como converter um arquivo XML, contendo HTML, para PDF em C#:

// Instanciar objeto Documento
Document doc = new Document();
// Vincular arquivo XML de origem
doc.BindXml(dataDir + "XML.xml");
// Converter XML para PDF
doc.Save(dataDir + "XMLToPDF.pdf");

Converter XML e XSLT para PDF em C#

Às vezes, você pode ter um arquivo XML existente que contém dados importantes do aplicativo e deseja gerar relatórios em PDF usando esse arquivo XML. Em tais cenários, você pode criar um arquivo XSLT para transformar seu documento XML existente em um documento XML compatível com Aspose.PDF. Então você pode prosseguir para converter XML para PDF. Vamos aprender isso com um exemplo simples e básico:

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

Você pode notar que o arquivo XML não segue o esquema XML do Aspose.PDF para .NET API. No entanto, o arquivo XSLT o transforma em compatibilidade necessária. Agora você pode seguir as etapas abaixo para converter esse XML usando XSLT para PDF:

  1. Inicializar PDF Documento
  2. Ligar Arquivo XML e XSLT
  3. Salve o documento PDF de saída

O trecho de código abaixo é baseado nestas etapas que mostram como converter XML para PDF em C#:

//Criar documento pdf
Aspose.Pdf.Document pdf = new Aspose.Pdf.Document();
//Vincular arquivos XML e XSLT ao documento
try
{
    pdf.BindXml(dataDir + "\\HelloWorld.xml", dataDir + "\\HelloWorld.xslt");
}
catch (System.Exception)
{

    throw;
}
            
//Salve o documento
 pdf.Save(dataDir + "HelloWorldUsingXmlAndXslt.pdf");

Conclusão

Aprendemos como converter XML para arquivo PDF em C# desde que o XML siga o esquema mencionado da API. Considerando a popularidade e a usabilidade das tags HTML, também consideramos o cenário em que você precisa incluir algum HTML no arquivo XML de origem. Além disso, também exploramos como converter XML e XSLT para PDF quando o arquivo XML existente não segue o esquema.

Veja também