この記事では、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ファイルに変換するには、以下の手順に従う必要があります。
次のコードスニペットは、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に変換できます。
- ドキュメントクラスオブジェクトをインスタンス化します
- 入力XMLファイルをロードします
- 出力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に変換できます。
以下のコードスニペットは、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に変換する方法についても説明しました。