XMLからPDFへ

この記事では、C#を使用してXMLファイルをPDFに変換します。 Aspose.PDF for .NET APIユーザーの要求に応じて、関連する多くの拡張機能が含まれているため、APIはXML変換機能を広範囲にサポートします。 XMLをPDFにエクスポートするこの効率的な機能を使用して、.NETアプリケーションを向上させることができます。 C#でのXMLからPDFへの変換に関連する次のユースケースを考えてみましょう。

C#でXMLをPDFに変換する

XMLをPDFに変換するには、XSDファイルとして入手可能なAspose.PDF for .NET APIのXMLスキーマに従う必要があります。以下は、HelloWorldのデモンストレーションとしてPDFに変換するXMLファイルです。

<?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. ドキュメントクラスのオブジェクトを初期化します
  2. BindXmlメソッドを使用してXMLファイルをロードします
  3. 変換されたPDFファイルを保存します

次のコードスニペットは、C#でXMLをPDFに変換する方法を示しています。

// ドキュメントオブジェクトをインスタンス化する
Document doc = new Document();
// ソースXMLファイルをバインドする
doc.BindXml(dataDir + "XML.xml");
// XMLをPDFに変換する
doc.Save(dataDir + "XMLToPDF.pdf");

C#XMLでHTMLを使用し、PDFに変換する

HTMLに変換する前に、XMLでHTMLを使用する必要がある場合があります。 Aspose.PDF for .NET APIは、この機能もサポートしています。ただし、HTMLタグとXMLタグは非常に似ています。したがって、HTMLがXMLマークアップとして解析されないように、CDATAタグを指定する必要があります。以下のサンプルXMLファイルには、異常を回避するためにCDATAで示されるHTMLが含まれています。

<?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. ドキュメントクラスオブジェクトをインスタンス化します
  2. 入力XMLファイルをロードします
  3. 出力PDFファイルを保存します

以下のコードスニペットは、HTMLを含むXMLファイルをC#でPDFに変換する方法を示しています。

// ドキュメントオブジェクトをインスタンス化する
Document doc = new Document();
// ソースXMLファイルをバインドする
doc.BindXml(dataDir + "XML.xml");
// XMLをPDFに変換する
doc.Save(dataDir + "XMLToPDF.pdf");

XMLとXSLTをC#でPDFに変換する

重要なアプリケーションデータを含む既存のXMLファイルがあり、そのXMLファイルを使用してPDFレポートを生成したい場合があります。このようなシナリオでは、XSLTファイルを作成して、既存のXMLドキュメントをAspose.PDFの互換性のあるXMLドキュメントに変換できます。次に、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ファイルがAspose.PDF for .NET APIのXMLスキーマに準拠していないことがわかります。ただし、XSLTファイルはそれを必要な互換性に変換します。これで、以下の手順に従って、XSLTを使用してこのようなXMLをPDFに変換できます。

  1. PDFの初期化ドキュメント
  2. バインドXMLおよびXSLTファイル
  3. 出力PDFドキュメントを保存します

以下のコードスニペットは、C#でXMLをPDFに変換する方法を示す次の手順に基づいています。

//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が前述のAPIのスキーマに従っている場合、C#でXMLをPDFファイルに変換する方法を学びました。 HTMLタグの人気と使いやすさを考慮して、ソースXMLファイルにHTMLを含める必要がある場合のシナリオも検討しました。さらに、既存のXMLファイルがスキーマに準拠していない場合にXMLおよびXSLTをPDFに変換する方法についても説明しました。

関連項目