IRONPDFの使用

C# PDFジェネレーターの包括的ガイド: IronPDFを使用した簡単なPDF作成と操作

PDFドキュメントの生成は、C#開発者にとって一般的でしばしば不可欠な要件です。 請求書の作成、詳細な業務報告書の作成、ウェブコンテンツの変換、その他のさまざまな業務文書の管理を任されている場合でも、信頼できるC# PDFジェネレーターは不可欠です。 多くの開発者は、これらのタスクを簡素化するだけでなく、HTMLを高忠実度でPDFに変換したり、既存のPDFを編集したり、プログラムから新しいPDFをゼロから作成したりするような強力な機能を提供する.NETライブラリを探しています。

そのような強力で使いやすいソリューションをお探しの場合は、ここが最適です。 このガイドでは、C#でのPDF生成と操作を効率化するために綿密に設計された主要な.NETライブラリ、IronPDFに焦点を当てます。 IronPDFが一般的なPDF生成のニーズにどのように対処するかを説明し、迅速に開始するための実用的なチュートリアルを提供し、開発ツールキットとしてIronPDFが強力な候補になる理由について説明します。

ご紹介する内容:

  • C# PDF生成の状況を理解する
  • IronPDFがC#でのPDF作業に最適な選択である理由
  • あなたのC#プロジェクトにおけるIronPDFのセットアップ(Windows Formsの例)
  • HTMLコンテンツやライブURLからPDFを生成する。
  • IronPDF を効率的で強力なC# PDF ライブラリにする主な機能。

なぜIronPDFをC# PDFジェネレーターとして選ぶのか?

C# PDFライブラリを評価する際、開発者はしばしば使いやすさ、レンダリングの正確さ(特にHTMLからPDFへの変換)、包括的な機能セット、全体的なパフォーマンスを優先します。 IronPDFは、これらの分野で優れた性能を発揮するように設計されています:

  • 簡単さと開発者の生産性: このチュートリアルで示すように、IronPDFを使用すると驚くほど少ない行数のC#コードでPDFドキュメントを生成および操作できます。 これは、他のPDF操作方法や冗長なライブラリでよく直面する根本的な複雑さを抽象化します。
  • ピクセルパーフェクトなHTMLからPDFへのレンダリング: 特徴的な機能は、IronPDFが組み込みのChromeレンダリングエンジンを使用することです。これにより、HTML、CSS、JavaScriptが現代のウェブブラウザと同様の精度と忠実度でレンダリングされることが保証されます。 これは、Webコンテンツからプロフェッショナルな外観のドキュメントを生成するのに非常に重要です。ここで、一部の C#用の無料PDFライブラリは不足があるかもしれません。
  • 総合的なPDF機能: IronPDFは単なるPDF作成ツール以上のものです。 これは、膨大な数の操作をサポートする完全なC# PDFツールです。

    • 既存のPDFドキュメントの編集

    • PDFの結合と分割

    • ヘッダー、フッター、透かし、およびページ番号の追加

    • PDFフォームの記入と読み取り

    • パスワードと権限によるドキュメントの保護
  • PDFにデジタル署名する
  • 優れたサポートと最新のドキュメント: IronPDFは商業的にサポートされているライブラリとして、プロフェッショナルな技術サポートを提供し、開発者が迅速かつ効率的にソリューションを実装できるよう、豊富で明確なドキュメントを維持しています。
  • クロスプラットフォーム互換性: Windows、Linux、macOS、Docker、AzureでのIronPDFを用いたアプリケーションの開発およびデプロイは、.NET(Core、Standard、Framework)を対象としています。

    では、C#のWindows FormsアプリケーションでIronPDFを使用してPDFを生成する方法について詳しく見ていきましょう。

ステップ1: Visual StudioプロジェクトをC#でのPDF生成用にセットアップする

最初のステップは、Visual Studioプロジェクトを作成することです。 このチュートリアルでは、Windows Forms アプリテンプレートを使用しますが、IronPDF は Web アプリケーション (ASP.NET)、コンソールアプリ、WPF などとシームレスに動作します。

Visual Studioを開きます。

C#プロジェクトのためのVisual Studioを開く

「新しいプロジェクトを作成」をクリックします。

Visual StudioでC# PDFジェネレーターの新しいプロジェクトを作成

テンプレートから「Windows Forms App (.NET Framework または .NET Core)」を選択し、「次へ」をクリックします。 次のウィンドウが表示されます。 プロジェクトに名前を付けます(例:MyCSharpPdfGenerator)。

PDF生成のためのC#プロジェクトの命名

プロジェクトの命名

その後、「次へ」をクリックします。 ドロップダウンメニューから、希望する.NET Frameworkを選択してください(IronPDFは幅広い範囲をサポートしています)。

IronPDF C#プロジェクトのための.NET Frameworkの選択

.NET Frameworkの選択

「作成」ボタンをクリックしてください。 プロジェクトは作成され、次のステップの準備が整います。

C# PDF生成用に作成されたVisual Studioプロジェクト

ステップ2: IronPDF C#ライブラリのインストール - PDF生成の鍵

IronPDFは、NuGetを使用してプロジェクトに簡単に追加できます。 これは、最新バージョンとすべての必要な依存関係を確保するための推奨方法です。

オプション1: パッケージマネージャーコンソール(最速)

Visual Studio のツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソールに移動します。 次に、次のコマンドを入力してEnterキーを押します:

Install-Package IronPdf
Install-Package IronPdf
SHELL

オプション2: NuGetパッケージマネージャーGUI

  1. ソリューション エクスプローラーでプロジェクトを右クリックし、「NuGet パッケージの管理...」を選択します。

  2. 「ブラウズ」タブをクリックして「IronPdf」を検索します。

  3. 検索結果からIronPdfパッケージを選択し、「インストール」をクリックします。

    NuGet パッケージマネージャー GUI 経由で IronPDF C# ライブラリをインストールする

オプション 3: 手動インストール (DLLのダウンロード)

または、IronPDF DLLをIronPDFのウェブサイトから直接ダウンロードできます。

  1. DLLをダウンロードして、適切な場所(例:ソリューションディレクトリ内の「Libs」フォルダー)に解凍してください。

  2. Visual Studio ソリューションエクスプローラーで、".NET Framework プロジェクト"の場合は「参照」、".NET Core/5+ プロジェクト"の場合は「依存関係」を右クリックして、「参照の追加...」または「プロジェクト参照の追加...」を選択し、「参照」をクリックします。

  3. IronPdf.dllをナビゲートして選択します。

ステップ3: シンプルなWindowsフォームインターフェイスの設計 (オプション)

このチュートリアルでは、PDF生成をトリガーするための基本的なUIを作成します。 ウェブやコンソールアプリケーションを構築する場合、IronPDFのロジックを直接コントローラー、サービス、またはクラスに統合します。

Visual Studioのツールボックスに移動します(表示 > ツールボックス)。 次のコントロールをForm1のデザインサーフェスにドラッグ&ドロップします:

  • Label(例:アプリケーションのタイトルとして「C# PDF Generator Demo」)
  • HTML/テキストを入力するためのRichTextBox(名前はPdfText
  • URLを入力するためのTextBox(名前はURL)。
  • 2つのButtonコントロール。

    • 最初のボタンのテキストを「Generate PDF From Text」に設定します(GeneratePDFFromTextButtonと名付けます)。

    • 2番目のボタンのテキストを「Generate PDF From URL」に設定します(これをGeneratePDFFromURLButtonと名付けます)。

    C# PDF Generator アプリケーション用の Windows フォームをデザインする

ステップ 4: テキスト/HTML から PDF を生成する C# コードの作成

次に、C# のロジックを追加しましょう。 フォームデザイナーで「Generate PDF From Text」ボタン(GeneratePDFFromTextButton)をダブルクリックします。 これは、Form1.csファイルにイベントハンドラメソッドを作成します。

まず、Form1.cs ファイルの先頭に IronPDF 名前空間を追加します。

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

次に、ボタンのclickイベントハンドラーを実装します。 このコードは、RichTextBoxからテキスト(プレーンテキストまたはHTML)を取り出し、それをPDFドキュメントに変換します。

private void GeneratePDFFromTextButton_Click(object sender, EventArgs e)
{
    // It's recommended to set your license key once at application startup.
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
    // If no key is set, IronPDF will watermark PDFs after a trial period.

    // Use SaveFileDialog to let the user choose where to save the PDF
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Default to My Documents
    saveFileDialog1.Title = "Save PDF File As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1; // Start with PDF files selected
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;

        // The core of PDF generation from HTML/Text using IronPDF
        // IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
        var renderer = new ChromePdfRenderer();

        // The RenderHtmlAsPdf method converts an HTML string to a PDF document.
        // This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
        // from HTML templates.
        using (var pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text))
        {
            pdfDocument.SaveAs(filename);
        }

        MessageBox.Show("PDF Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
private void GeneratePDFFromTextButton_Click(object sender, EventArgs e)
{
    // It's recommended to set your license key once at application startup.
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
    // If no key is set, IronPDF will watermark PDFs after a trial period.

    // Use SaveFileDialog to let the user choose where to save the PDF
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Default to My Documents
    saveFileDialog1.Title = "Save PDF File As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1; // Start with PDF files selected
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;

        // The core of PDF generation from HTML/Text using IronPDF
        // IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
        var renderer = new ChromePdfRenderer();

        // The RenderHtmlAsPdf method converts an HTML string to a PDF document.
        // This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
        // from HTML templates.
        using (var pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text))
        {
            pdfDocument.SaveAs(filename);
        }

        MessageBox.Show("PDF Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
}
Private Sub GeneratePDFFromTextButton_Click(ByVal sender As Object, ByVal e As EventArgs)
	' It's recommended to set your license key once at application startup.
	' IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 
	' If no key is set, IronPDF will watermark PDFs after a trial period.

	' Use SaveFileDialog to let the user choose where to save the PDF
	Dim saveFileDialog1 As New SaveFileDialog()
	saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) ' Default to My Documents
	saveFileDialog1.Title = "Save PDF File As"
	saveFileDialog1.DefaultExt = "pdf"
	saveFileDialog1.Filter = "PDF files (*.pdf) *.pdf All files (*.*) *.*"
	saveFileDialog1.FilterIndex = 1 ' Start with PDF files selected
	saveFileDialog1.RestoreDirectory = True

	If saveFileDialog1.ShowDialog() = DialogResult.OK Then
		Dim filename As String = saveFileDialog1.FileName

		' The core of PDF generation from HTML/Text using IronPDF
		' IronPDF's ChromePdfRenderer accurately renders HTML, CSS, and JavaScript.
		Dim renderer = New ChromePdfRenderer()

		' The RenderHtmlAsPdf method converts an HTML string to a PDF document.
		' This is incredibly powerful for generating dynamic reports, invoices, tickets, etc.
		' from HTML templates.
		Using pdfDocument = renderer.RenderHtmlAsPdf(PdfText.Text)
			pdfDocument.SaveAs(filename)
		End Using

		MessageBox.Show("PDF Generated Successfully at: " & filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
	End If
End Sub
$vbLabelText   $csharpLabel

C# PDF生成コードの説明:

  • IronPdf.License.LicenseKey: IronPDFのライセンスキーを設定することは良いプラクティスです。 もしライセンスキーをお持ちであれば、行のコメントを解除し、"YourLicenseKey..."を実際のキーに置き換えてください。 IronPDFはライセンスキーなしで動作しますが、試用期間後はドキュメントに透かしが追加されます。
  • SaveFileDialog: これは、ユーザーがPDFの保存場所とファイル名を選択するための標準的なWindowsダイアログを提供します。
  • ChromePdfRenderer: これはIronPDFのHTMLからPDFへの変換機能の中心です。 それは最大の忠実度を保証するために埋め込み型のChromiumエンジンを使用します。
  • RenderHtmlAsPdf(PdfText.Text): この単一のメソッド呼び出しは、RichTextBox からの文字列コンテンツ(リッチHTMLも含む)を取り、PDFドキュメントオブジェクトに変換します。
  • SaveAs(filename): このメソッドは、生成されたPDFドキュメントをユーザーが指定したパスに保存します。
  • pdfDocument に対して using ステートメントを使用することで、リソースが正しく管理されることが保証されます。

    IronPDFが、HTMLからPDFへの変換のような複雑になりがちな作業を、ほんの数行のコードに簡略化する様子をご覧ください。 これは、迅速かつ信頼性の高い方法でPDF C#を生成する必要がある開発者にとって重要な利点です。

プロジェクトの実行とテキスト/HTMLからの初回PDF生成

プロジェクトを実行するには、Ctrl + F5 を押す(またはスタートボタンをクリックする) Windowsフォームアプリケーションが表示されます。

C# PDFジェネレーターアプリケーションの実行

リッチテキストボックスにHTMLコンテンツを入力してください。 例えば:

<h1>My First C# PDF Document</h1>
<p>This PDF was generated using <strong>IronPDF</strong> in a C# application.</p>
<p>IronPDF makes it very easy to convert HTML content, including styles and images, into professional PDF files.</p>
<ul>
    <li>Easy to use</li>
    <li>Accurate rendering</li>
    <li>Feature-rich</li>
</ul>
<h1>My First C# PDF Document</h1>
<p>This PDF was generated using <strong>IronPDF</strong> in a C# application.</p>
<p>IronPDF makes it very easy to convert HTML content, including styles and images, into professional PDF files.</p>
<ul>
    <li>Easy to use</li>
    <li>Accurate rendering</li>
    <li>Feature-rich</li>
</ul>
HTML

C# PDF GeneratorアプリへのHTML入力

「Generate PDF From Text」ボタンをクリックしてください。 「名前を付けて保存」ダイアログが表示されます。 場所とファイル名を選択し、「保存」をクリックします。

PDF出力の確認(Text/HTML から)

PDFを保存した場所に移動して開いてください。 PDFドキュメント内でHTMLコンテンツが正確にレンダリングされているのが確認できるはずです。

IronPDF C#を使用してHTML文字列から生成された出力PDFファイル

ステップ 5: URLからPDFを生成するC#コードの記述

ライブウェブページからPDFを生成することは、もう一つの一般的な要件です。 IronPDFはこれを非常に簡単にします。 フォームデザイナーで「Generate PDF FROM URL」ボタン (GeneratePDFFromURLButton) をダブルクリックして、クリックイベントハンドラーを作成します。

次のC#コードを追加してください:

private void GeneratePDFFromURLButton_Click(object sender, EventArgs e)
{
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

    if (string.IsNullOrWhiteSpace(URL.Text))
    {
        MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        return;
    }

    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    saveFileDialog1.Title = "Save PDF From URL As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1;
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;
        try
        {
            var renderer = new ChromePdfRenderer();
            // RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
            // This is excellent for archiving web pages or creating PDFs from online reports.
            using (var pdfDocument = renderer.RenderUrlAsPdf(URL.Text))
            {
                pdfDocument.SaveAs(filename);
            }
            MessageBox.Show("PDF from URL Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error generating PDF from URL: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
private void GeneratePDFFromURLButton_Click(object sender, EventArgs e)
{
    // IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

    if (string.IsNullOrWhiteSpace(URL.Text))
    {
        MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        return;
    }

    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    saveFileDialog1.Title = "Save PDF From URL As";
    saveFileDialog1.DefaultExt = "pdf";
    saveFileDialog1.Filter = "PDF files (*.pdf)
*.pdf
All files (*.*)
*.*";
    saveFileDialog1.FilterIndex = 1;
    saveFileDialog1.RestoreDirectory = true;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string filename = saveFileDialog1.FileName;
        try
        {
            var renderer = new ChromePdfRenderer();
            // RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
            // This is excellent for archiving web pages or creating PDFs from online reports.
            using (var pdfDocument = renderer.RenderUrlAsPdf(URL.Text))
            {
                pdfDocument.SaveAs(filename);
            }
            MessageBox.Show("PDF from URL Generated Successfully at: " + filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error generating PDF from URL: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
Private Sub GeneratePDFFromURLButton_Click(ByVal sender As Object, ByVal e As EventArgs)
	' IronPdf.License.LicenseKey = "YourLicenseKey-GetYourKeyFromIronPdf.com"; 

	If String.IsNullOrWhiteSpace(URL.Text) Then
		MessageBox.Show("Please enter a valid URL.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
		Return
	End If

	Dim saveFileDialog1 As New SaveFileDialog()
	saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
	saveFileDialog1.Title = "Save PDF From URL As"
	saveFileDialog1.DefaultExt = "pdf"
	saveFileDialog1.Filter = "PDF files (*.pdf) *.pdf All files (*.*) *.*"
	saveFileDialog1.FilterIndex = 1
	saveFileDialog1.RestoreDirectory = True

	If saveFileDialog1.ShowDialog() = DialogResult.OK Then
		Dim filename As String = saveFileDialog1.FileName
		Try
			Dim renderer = New ChromePdfRenderer()
			' RenderUrlAsPdf fetches the content from the URL and converts it to PDF.
			' This is excellent for archiving web pages or creating PDFs from online reports.
			Using pdfDocument = renderer.RenderUrlAsPdf(URL.Text)
				pdfDocument.SaveAs(filename)
			End Using
			MessageBox.Show("PDF from URL Generated Successfully at: " & filename, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
		Catch ex As Exception
			MessageBox.Show("Error generating PDF from URL: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
		End Try
	End If
End Sub
$vbLabelText   $csharpLabel

説明:

  • URL.Text: これはフォーム上のTextBoxコントロールからURL文字列を取得します。
  • RenderUrlAsPdf(URL.Text): この強力なIronPDFメソッドは、指定されたURLに移動し、そのコンテンツ(HTML、CSS、JavaScript、画像を含む)をレンダリングしてPDFドキュメントに変換します。
  • ロバスト性のためにエラー処理(try-catch)が含まれており、ネットワークの問題や無効なURLが発生する可能性があります。

プロジェクトを実行し、URLからPDFを生成する

プロジェクトを再実行してください (Ctrl + F5)。 今回は、URL テキストボックスに完全なURL (例: https://ironpdf.com) を入力してください。

URLをC# PDF Generatorアプリケーションに入力する

「URLからPDFを生成」ボタンをクリックします。 保存場所とファイル名を選択します。

PDF出力の確認(URLから)

生成されたPDFを開く。 ウェブページがレイアウトとコンテンツを保持したまま、忠実にPDFドキュメントに変換されたことがわかります。

C#でIronPDFを使用してURLから生成されたPDFドキュメントの出力

結論: IronPDFでC# PDF生成を簡素化

このチュートリアルが示すように、IronPDFはすべてのC# PDF生成のニーズに対して非常に強力でありながら簡単なソリューションを提供します。 複雑なCSSとJavaScriptを使用した複雑なHTMLページの変換、データからの動的なレポート生成、ライブURLからのPDFの作成、または.NETアプリケーション内での強力なPDF編集機能が必要な場合でも、IronPDFは効率的に仕事を遂行するためのツールとパフォーマンスを提供します。

PDF C# プロジェクトを生成する際、レンダリングの忠実度や機能セットに制限がある無料ライブラリと、膨大なボイラープレートコードを必要とするより複雑なソリューションの間で選択を迫られることがよくあります。 IronPDF は、開発を合理化し、高品質な出力を保証し、基本的な PDF 作成を超えた豊富な機能セットを提供する包括的で商業的にサポートされた.NET PDF ライブラリとして際立っています。

C#でPDFを生成および操作する最良の方法を体験する準備はできていますか?

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
PDFファイルからパスワードを削除する方法
次へ >
C# プログラムでPDFファイルを作成