.NETで他のファイル形式をPDFに変換する
概要
この記事では、C#を使用してさまざまな他のタイプのファイル形式をPDFに変換する方法について説明します。次のトピックをカバーしています。
以下のコードスニペットもAspose.PDF.Drawingライブラリで動作します。
形式: EPUB
形式: Markdown
形式: MD
形式: PCL
形式: Text
形式: TXT
形式: Plain Text
形式: プレフォーマットされたTXT
形式: プレテキスト
形式: XPS
EPUBをPDFに変換
Aspose.PDF for .NET はEPUBファイルをPDF形式に簡単に変換できます。
EPUB (電子出版の略) は国際デジタル出版フォーラム (IDPF) からの無料でオープンな電子書籍標準です。 EPUB(電子出版物の略)は、国際デジタル出版フォーラム(IDPF)からの無料でオープンな電子書籍標準です。
EPUBは固定レイアウトコンテンツもサポートしています。このフォーマットは、出版社および変換ハウスが社内で使用するための単一フォーマットとして意図されており、配布や販売にも利用できます。これはOpen eBook標準を置き換えるものです。バージョンEPUB 3は、標準化されたベストプラクティス、研究、情報、イベントのための業界団体であるブックインダストリーサディグループ(BISG)によっても支持されています。
EPUBをPDFオンラインに変換してみてください
Aspose.PDF for .NETは、無料のアプリケーション“EPUB to PDF”をオンラインで提供しています。ここで機能性と品質を試すことができます。
手順: C#でEPUBをPDFに変換 手順: C#でEPUBをPDFに変換する
- EpubLoadOptions クラスのインスタンスを作成します。
- ソースファイル名とオプションを指定して Document クラスのインスタンスを作成します。
- 希望のファイル名でドキュメントを保存します。
次のコードスニペットは、C#でEPUBファイルをPDF形式に変換する方法を示しています。
public static void ConvertEPUBtoPDF()
{
EpubLoadOptions option = new EpubLoadOptions();
Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
pdfDocument.Save(_dataDir + "epub_test.pdf");
}
また、変換のためにページサイズを設定することもできます。新しいページサイズを定義するためには、SizeF
オブジェクトを作成し、EpubLoadOptions コンストラクタに渡します。
public static void ConvertEPUBtoPDFAdv()
{
EpubLoadOptions option = new EpubLoadOptions(new SizeF(1190, 1684));
Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
pdfDocument.Save(_dataDir + "epub_test.pdf");
}
MarkdownをPDFに変換
この機能はバージョン19.6以降でサポートされています。
オンラインでMarkdownをPDFに変換してみましょう
Aspose.PDF for .NETは、無料のオンラインアプリケーション “Markdown to PDF” を提供しています。ここで機能と品質を試すことができます。
Aspose.PDF for .NETは、入力されたMarkdownデータファイルに基づいてPDFドキュメントを作成する機能を提供します。MarkdownをPDFに変換するには、MdLoadOptionsを使用してDocumentを初期化する必要があります。
次のコードスニペットは、Aspose.PDFライブラリを使用してこの機能を使用する方法を示しています:
手順: C#でMarkdownをPDFに変換 手順: C#でMarkdownをPDFに変換する | 手順: C#でMDをPDFに変換する
- MdLoadOptions クラスのインスタンスを作成します。
- ソースファイル名とオプションを指定して Document クラスのインスタンスを作成します。
- 希望のファイル名でドキュメントを保存します。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Markdownドキュメントを開く
Document pdfDocument = new Document(dataDir + "sample.md", new MdLoadOptions());
// ドキュメントをPDF形式で保存
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");
PCLからPDFへの変換
PCL (Printer Command Language) は、標準プリンタ機能にアクセスするために開発されたHewlett-Packardのプリンタ言語です。 PCL(プリンターコマンド言語)は、標準的なプリンター機能にアクセスするために開発されたヒューレット・パッカードのプリンター言語です。
現在、PCL5およびそれ以前のバージョンのみがサポートされています
コマンドセット | サポート状況 | 例外 | 説明 |
---|---|---|---|
ジョブ制御コマンド | |||
ジョブ制御コマンド | + | 両面印刷モード | 印刷プロセスを制御する:コピー数、出力ビン、シンプレックス/デュプレックス印刷、左および上のオフセットなど。 |
ページ制御コマンド | + | パーフォレーションスキップコマンド | ページのサイズ、余白、ページの向き、行間、文字間の距離などを指定する。 |
カーソル位置決めコマンド | + | カーソル位置を指定し、テキスト、ラスターまたはベクター画像の起点と詳細を定める。 | |
カーソルの位置を指定し、テキスト、ラスターやベクター画像、詳細の原点となります。 | |||
フォント選択コマンド | + |
|
PCLファイルからソフト(埋め込み)フォントをロードして、メモリ内で管理することを許可します。 |
ラスターグラフィックスコマンド | + | 黒白のみ |
PCLファイルからラスター画像をメモリにロードし、幅、高さ、圧縮タイプ、解像度などのラスターパラメータを指定します。 |
カラーコマンド | + | すべての印刷可能オブジェクトに対して色付けを許可します。 | |
プリントモデルコマンド
```
```
モデルコマンドの印刷
テキスト、ラスター画像、およびラスター事前定義された矩形領域を塗りつぶすことを許可し、 パターンとソースラスター画像の透明度モードを指定します。 事前定義されたパターンには、ハッチング、クロスハッチ、 およびシェーディングがあります。 矩形領域塗りつぶしコマンド パターンを使用して矩形領域を作成および塗りつぶすことを許可します。 HP-GL/2 ベクターグラフィックスコマンド スクリーンドベクターコマンド(SV)、透明度モードコマンド(TR)、透明データコマンド(TD)、RO
|
PCLファイルをPDF形式に変換する
PCLからPDFへの変換を可能にするために、Aspose.PDFにはPclLoadOptions
クラスがあり、LoadOptionsオブジェクトを初期化するために使用されます。
PCLからPDFへの変換を可能にするために、Aspose.PDFは[`PclLoadOptions`](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions)クラスを使用してLoadOptionsオブジェクトを初期化します。
以下のコードスニペットは、PCLファイルをPDF形式に変換するプロセスを示しています。
<a name="csharp-convert-pcl-to-pdf" id="csharp-convert-pcl-to-pdf"><strong><em>手順:</em> C#でPCLをPDFに変換する</strong></a>
1. [PclLoadOptions](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions/)クラスのインスタンスを作成します。
2. ソースファイル名とオプションを指定して[Document](https://reference.aspose.com/pdf/net/aspose.pdf/document/)クラスのインスタンスを作成します。
3. 希望のファイル名でドキュメントを保存します。
```csharp
public static void ConvertPCLtoPDF()
{
PclLoadOptions options = new PclLoadOptions();
Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
pdfDocument.Save(_dataDir + "pcl_test.pdf");
}
変換プロセス中のエラー検出も監視できます。 変換プロセス中にエラーの検出を監視することもできます。
public static void ConvertPCLtoPDFAvdanced()
{
PclLoadOptions options = new PclLoadOptions { SupressErrors = true };
Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
if (options.Exceptions!=null)
foreach (var ex in options.Exceptions)
{
Console.WriteLine(ex.Message);
}
pdfDocument.Save(_dataDir + "pcl_test.pdf");
}
既知の問題点
- 印刷方向が0°でない場合、テキスト文字列と画像の原点が元のPCLファイルと若干異なる場合があります。ベクター画像についても、ベクタープロットの座標系が回転している場合(ROコマンドが先行している場合)同様です。
- ベクター画像のラベルの原点が、次の一連のコマンドに影響を受ける場合、元のPCLファイルと異なる場合があります:ラベル原点(LO)、可変テキストパスの定義(DV)、絶対方向(DI)、相対方向(DR)。
- 解析されたPCLファイルにIntellifontまたはUniversalソフトフォントが含まれている場合、例外が発生します。これは、IntellifontおよびUniversalフォントが全くサポートされていないためです。
- 解析されたPCLファイルにマクロコマンドが含まれている場合、解析結果はソースファイルと大きく異なります。これは、マクロコマンドがサポートされていないためです。
テキストをPDFに変換
Aspose.PDF for .NETは、プレーンテキストおよび事前にフォーマットされたテキストファイルをPDF形式に変換する機能をサポートしています。
テキストをPDFに変換するということは、PDFページにテキストフラグメントを追加することを意味します。テキストファイルに関しては、2種類のテキストが扱われます: プリフォーマッティング(例えば、1行に80文字の25行)と非フォーマットテキスト(プレーンテキスト)。ニーズに応じて、この追加を自分たちで制御することも、ライブラリのアルゴリズムに任せることもできます。
オンラインでTEXTをPDFに変換してみる
Aspose.PDF for .NETは、無料のオンラインアプリケーション“テキストをPDFに”を提供しており、そこで機能や品質を試すことができます。
Aspose.PDF for .NET は無料のオンラインアプリケーション “Text to PDF” を提供しており、その機能や品質を試すことができます。
プレーンテキストファイルをPDFに変換
プレーンテキストファイルの場合、以下の技術を使用できます:
手順: C#でテキストをPDFに変換する | 手順: C#でTXTをPDFに変換する | 手順: C#でプレーンテキストをPDFに変換する
- TextReader を使用して全文を読み取ります;
- TextFragment の新しいオブジェクトを作成し、そのコンストラクターに TextReader オブジェクトを渡す;
- Paragraphs コレクションに TextFragment オブジェクトを段落として追加します。テキストの量がページより多い場合、ライブラリのアルゴリズムが自動的に追加ページを追加します;
- Document クラスの Save メソッドを使用します;
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// ソーステキストファイルを読み込む
TextReader tr = new StreamReader(dataDir + "log.txt");
// 空のコンストラクタを呼び出すことによりDocumentオブジェクトのインスタンスを作成します
Document pdfDocument= new Document();
// DocumentのPagesコレクションに新しいページを追加
Page page = pdfDocument.Pages.Add();
// TextFragmetのインスタンスを作成し、リーダーオブジェクトからテキストをそのコンストラクタの引数として渡します
TextFragment text = new TextFragment(tr.ReadToEnd());
// 段落コレクションに新しいテキスト段落を追加し、TextFragmentオブジェクトを渡します
page.Paragraphs.Add(text);
// 結果のPDFファイルを保存
pdfDocument.Save(dataDir + "TexttoPDF_out.pdf");
プリフォーマットされたテキストファイルをPDFに変換する
プリフォーマットされたテキストの変換はプレーンテキストと似ていますが、マージン、フォントタイプ、フォントサイズの設定などの追加アクションが必要です。明らかにフォントはモノスペースである必要があります(例:Courier New)。
C#でプリフォーマットされたテキストをPDFに変換する手順に従ってください:
手順:C#でプリテキストをPDFに変換する | 手順:C#でプリフォーマットされたTXTをPDFに変換する
この場合、ライブラリのアルゴリズムも余分なページを追加しますが、このプロセスを自分たちで制御することができます。 次の例は、事前にフォーマットされたテキストファイル(80x25)をA4サイズのPDFドキュメントに変換する方法を示しています。
public static void ConvertPreFormattedTextToPdf()
{
// テキストファイルを文字列の配列として読み込む
var lines = System.IO.File.ReadAllLines(_dataDir + "rfc822.txt");
// 空のコンストラクタを呼び出すことによりDocumentオブジェクトをインスタンス化
Document pdfDocument= new Document();
// DocumentのPagesコレクションに新しいページを追加
Page page = pdfDocument.Pages.Add();
// より良いプレゼンテーションのために左右のマージンを設定
page.PageInfo.Margin.Left = 20;
page.PageInfo.Margin.Right = 10;
page.PageInfo.DefaultTextState.Font = FontRepository.FindFont("Courier New");
page.PageInfo.DefaultTextState.FontSize = 12;
foreach (var line in lines)
{
// 行が「フォームフィード」文字を含むかどうかを確認
// https://en.wikipedia.org/wiki/Page_break を参照
if (line.StartsWith("\x0c"))
{
page = pdfDocument.Pages.Add();
page.PageInfo.Margin.Left = 20;
page.PageInfo.Margin.Right = 10;
page.PageInfo.DefaultTextState.Font = FontRepository.FindFont("Courier New");
page.PageInfo.DefaultTextState.FontSize = 12;
}
else
{
// TextFragmentのインスタンスを作成し、
// 引数として行をその
// コンストラクタに渡す
TextFragment text = new TextFragment(line);
// パラグラフコレクションに新しいテキストパラグラフを追加し、TextFragmentオブジェクトを渡す
page.Paragraphs.Add(text);
}
}
// 結果のPDFファイルを保存
pdfDocument.Save(_dataDir + "TexttoPDF_out.pdf");
}
XPSをPDFに変換
Aspose.PDF for .NET は、XPSファイルをPDF形式に変換する機能をサポートしています。この記事をチェックして、あなたのタスクを解決してください。
XPSファイルタイプは、主にMicrosoft CorporationによるXML Paper Specificationと関連しています。XML Paper Specification(XPS)は、以前はMetroとコードネームが付けられ、Next Generation Print Path(NGPP)のマーケティングコンセプトが包含されていたもので、MicrosoftがWindowsオペレーティングシステムに文書作成と閲覧を統合するための取り組みです。
Aspose.PDF for .NETでXPSをPDFに変換するために、LoadOptionsオブジェクトを初期化するために使用されるXpsLoadOptionというクラスを導入しました。 Aspose.PDF for .NETを使用してXPSをPDFに変換するために、LoadOptionsオブジェクトを初期化するために使用されるXpsLoadOptionというクラスを導入しました。
次のコードスニペットは、C#でXPSファイルをPDF形式に変換するプロセスを示しています。
- XpsLoadOptionsクラスのインスタンスを作成します。
- ドキュメントをPDF形式で保存し、希望のファイル名を付けます。
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// XPSロードオプションを使用してLoadOptionオブジェクトをインスタンス化します
Aspose.Pdf.LoadOptions options = new XpsLoadOptions();
// ドキュメントオブジェクトを作成します
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "XPSToPDF.xps", options);
// 結果のPDFドキュメントを保存します
document.Save(dataDir + "XPSToPDF_out.pdf");
PostScriptをPDFに変換
Aspose.PDF for .NET はPostScriptファイルをPDF形式に変換する機能をサポートしています。Aspose.PDFの特徴の一つとして、変換中に使用するフォントフォルダのセットを設定することができます。
PostScriptファイルをPDF形式に変換するために、Aspose.PDF for .NETはPsLoadOptionsクラスを提供しています。このクラスはLoadOptionsオブジェクトの初期化に使用されます。後に、このオブジェクトはDocumentオブジェクトコンストラクタに引数として渡すことができ、PDFレンダリングエンジンがソースドキュメントの形式を判別するのに役立ちます。
以下のコードスニペットを使用して、Aspose.PDF for .NETでPostScriptファイルをPDF形式に変換できます:
// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// PsLoadOptionsの新しいインスタンスを作成
PsLoadOptions options = new PsLoadOptions();
// 作成したロードオプションで.psドキュメントを開く
Document pdfDocument = new Document(_dataDir + "input.ps", options);
// ドキュメントを保存
pdfDocument.Save(dataDir + "PSToPDF.pdf");
変換中に使用されるフォントフォルダのセットを設定することもできます:
public static void ConvertPostscriptToPDFAvdanced()
{
PsLoadOptions options = new PsLoadOptions
{
FontsFolders = new [] { @"c:\tmp\fonts1", @"c:\tmp\fonts2"}
};
Document pdfDocument = new Document(_dataDir + "input.ps", options);
pdfDocument.Save(_dataDir + "ps_test.pdf");
}
XMLをPDFに変換する
XML形式は構造化データを保存するために使用されます。Aspose.PDFでXMLをPDFに変換する方法はいくつかあります:
- XSLTを使用して任意のXMLデータをHTMLに変換し、以下に記述されているようにHTMLをPDFに変換する
- Aspose.PDF XSDスキーマを使用してXMLドキュメントを生成する
- XSL-FO標準に基づいたXMLドキュメントを使用する
オンラインでXMLをPDFに変換してみる
Aspose.PDF for .NETは、無料のオンラインアプリケーション“XML to PDF”を提供しています。ここで機能や品質を試すことができます。 Aspose.PDF for .NETは、無料のオンラインアプリケーション “XML to PDF”を提供しており、その機能と品質を試すことができます。
XSL-FOをPDFに変換
XSL-FOファイルをPDFに変換するには、従来のAspose.PDF技術を使用してDocumentオブジェクトをXslFoLoadOptionsとともにインスタンス化します。しかし、ファイル構造が正しくない場合があります。この場合、XSL-FOコンバーターではエラー処理戦略を設定することができます。ThrowExceptionImmediately
, TryIgnore
, または InvokeCustomHandler
を選択できます。
public static void Convert_XSLFO_to_PDF()
{
// XslFoLoadOptionオブジェクトをインスタンス化
var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
// エラー処理戦略を設定
options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
// Documentオブジェクトを作成
var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
pdfDocument.Save(_dataDir + "data_xml.pdf");
}
LaTeX/TeXをPDFに変換する
LaTeXファイル形式は、TeXファミリーの言語の派生形式であるLaTeXをマークアップとして使用するテキストファイル形式です。LaTeX(ˈleɪtɛk/lay-tekまたはlah-tek)は、ドキュメント作成システムおよびドキュメントマークアップ言語です。これは、数学、物理学、コンピュータ科学を含む多くの分野で科学文書のコミュニケーションと出版に広く使用されています。また、サンスクリット語やアラビア語などの複雑な多言語資料を含む書籍や記事の準備と出版においても重要な役割を果たしています。LaTeXは、その出力をフォーマットするためにTeX組版プログラムを使用し、自身がTeXマクロ言語で書かれています。
オンラインでLaTeX/TeXをPDFに変換してみる
Aspose.PDF for .NETは、無料のアプリケーション“LaTex to PDF”を提供しています。ここで機能と品質を試すことができます。
Aspose.PDF for .NETはTeXファイルをPDF形式に変換する機能をサポートしています。この要件を達成するために、Aspose.Pdf名前空間にはLatexLoadOptionsというクラスがあり、LaTexファイルを読み込み、Document classを使用してPDF形式で出力をレンダリングする機能を提供します。 次のコードスニペットは、C#でLaTexファイルをPDF形式に変換するプロセスを示しています。
public static void ConvertTeXtoPDF()
{
// Latex Loadオプションオブジェクトをインスタンス化
TeXLoadOptions options = new TeXLoadOptions();
// Documentオブジェクトを作成
Aspose.Pdf.Document pdfDocument= new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
// 出力をPDFファイルに保存
pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
}