XML do PDF

W tym artykule będziemy konwertować pliki XML do formatu PDF przy użyciu języka C#. Aspose.PDF for .NET API szeroko obsługuje funkcję konwersji XML ze względu na włączenie wielu powiązanych ulepszeń, zgodnie z wymaganiami użytkowników API. Możesz podnieść swoje aplikacje .NET dzięki tej wydajnej funkcji eksportowania XML do PDF. Rozważmy następujące przypadki użycia związane z konwersją XML do PDF w C#:

Konwertuj XML na PDF w C#

Aby przekonwertować XML na PDF, musisz postępować zgodnie ze schematem XML Aspose.PDF for .NET API, który jest dostępny jako plik XSD. Poniżej znajduje się plik XML, który będziemy konwertować do formatu PDF w ramach demonstracji 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>

Musisz wykonać poniższe kroki, aby przekonwertować plik XML na plik PDF:

  1. Zainicjuj obiekt klasy Document.
  2. Załaduj plik XML metodą BindXml.
  3. Zapisz przekonwertowany plik PDF

Poniższy fragment kodu pokazuje, jak przekonwertować XML na PDF w języku C#:

// Utwórz instancję obiektu dokumentu
Document doc = new Document();
// Powiąż źródłowy plik XML
doc.BindXml(dataDir + "XML.xml");
// Konwertuj XML na PDF
doc.Save(dataDir + "XMLToPDF.pdf");

C# Używaj HTML w XML i Konwertuj na PDF

Czasami może być konieczne użycie HTML w XML przed konwersją do HTML. Aspose.PDF for .NET API obsługuje również tę funkcję. Jednak znaczniki HTML i XML są dość podobne. Dlatego należy określić znacznik CDATA, aby kod HTML nie był analizowany jako znacznik XML. Poniższy przykładowy plik XML zawiera kod HTML oznaczony przez CDATA, aby uniknąć wszelkich anomalii:

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

Możesz przekonwertować ten plik XML na format PDF, wykonując następujące czynności:

  1. Utwórz instancję obiektu klasy Document.
  2. Załaduj wejściowy plik XML
  3. Zapisz wyjściowy plik PDF

Poniższy fragment kodu pokazuje, jak przekonwertować plik XML zawierający HTML do formatu PDF w języku C#:

// Utwórz instancję obiektu dokumentu
Document doc = new Document();
// Powiąż źródłowy plik XML
doc.BindXml(dataDir + "XML.xml");
// Konwertuj XML na PDF
doc.Save(dataDir + "XMLToPDF.pdf");

Konwertuj XML i XSLT na PDF w C#

Czasami możesz mieć istniejący plik XML zawierający ważne dane aplikacji i chcesz generować raporty PDF przy użyciu tego pliku XML. W takich scenariuszach możesz utworzyć plik XSLT, aby przekształcić istniejący dokument XML w dokument XML zgodny z Aspose.PDF. Następnie możesz przystąpić do konwersji XML na PDF. Nauczmy się tego na prostym i podstawowym przykładzie:

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

Możesz zauważyć, że plik XML nie jest zgodny ze schematem XML Aspose.PDF for .NET API. Jednak plik XSLT przekształca go do wymaganej zgodności. Teraz możesz wykonać poniższe czynności, aby przekonwertować taki XML za pomocą XSLT na PDF:

  1. Zainicjuj PDF Document
  2. Bind Plik XML i XSLT
  3. Zapisz wyjściowy dokument PDF

Poniższy fragment kodu opiera się na tych krokach, które pokazują, jak przekonwertować XML na PDF w języku C#:

//Utwórz dokument pdf
Aspose.Pdf.Document pdf = new Aspose.Pdf.Document();
//Powiąż pliki XML i XSLT z dokumentem
try
{
    pdf.BindXml(dataDir + "\\HelloWorld.xml", dataDir + "\\HelloWorld.xslt");
}
catch (System.Exception)
{

    throw;
}
            
//Zapisz dokument
 pdf.Save(dataDir + "HelloWorldUsingXmlAndXslt.pdf");

Wniosek

Nauczyliśmy się konwertować pliki XML do PDF w C# pod warunkiem, że XML jest zgodny ze wspomnianym schematem API. Biorąc pod uwagę popularność i użyteczność znaczników HTML, rozważyliśmy również scenariusz, w którym trzeba zawrzeć kod HTML w źródłowym pliku XML. Co więcej, zbadaliśmy również, jak przekonwertować XML i XSLT na PDF, gdy istniejący plik XML nie jest zgodny ze schematem.

Zobacz też