IRONPDFの使用

HTMLファイルからC#でPDFを作成

更新済み 2024年1月20日
共有:

IronPDFはHTMLをPDFドキュメントにプログラム的に変換します。

C#でPDFを作成する方法 - HTMLからPDFへの例

この手法の簡単な例として、ダウンロードしてPDFで見る 例.

この記事全体のソースコードは、C#として提供されています。C# HTML から PDF へのプロジェクトソースコードダウンロード.

以下のチュートリアルでは、IronPDFを使用するプロセスについて説明します。C# PDF ジェネレーター. 基礎から高度なC# PDFトピックまで網羅しています。

HTML から PDF へのウォークスルー

このデモでは、IronPDFの使用例を紹介します。 その他のユースケース・デモをIron Softwareにリクエストする.

デモには「Hello World」が含まれています。RenderHtmlAsPdf以下のコンテンツを日本語に翻訳してください:RenderUrlAsPdf例文。 すべての例は、IronPDF Demoソリューションの対応するプロジェクトにあります。

ステップ1:インストール

IronPDFは、NuGet経由でインストールできます。 パッケージ名は IronPDF NuGetパッケージ.

または ライブラリを直接ダウンロード.

ステップ 2: Hello World

IronPDFをインストールし、プロジェクトに参照として追加したら、すぐに数行のコードを入力するだけで使用を開始できます。

var ChromePdfRenderer = new ChromePdfRenderer();  // new instance of ChromePdfRenderer
var ChromePdfRenderer = new ChromePdfRenderer();  // new instance of ChromePdfRenderer
Dim ChromePdfRenderer As New ChromePdfRenderer() ' new instance of ChromePdfRenderer
VB   C#

HTMLをPDFに変換する必要がある場合

// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
' html to turn into pdf
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"
' turn html to pdf
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))
VB   C#

ウェブページをPDFファイルに変換したい場合

// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
' uri of the page to turn into pdf
Dim uri As New Uri("http://www.google.com/ncr")
' turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
VB   C#

以上です!

対応する結果は次の通りです:

HTMLファイルからC#でPDFを作成、図1: HTMLをPDFに変換した結果

HTMLをPDFに変換した結果

HTMLファイルからC#でPDFを作成する、図2:ウェブページをPDFに変換した結果

ウェブページをPDFに変換した結果

IronPDFDemo.HelloWorldプロジェクトの下にコードサンプルを見つけてください。

ステップ3: RenderHtmlAsPdf

例1

より実際的な例を評価するために、PDFに変換する必要があるHTML請求書を想像してください。 次のコードを使用してそれを行う方法を示します。

注意: IronPDFDemo.DemoWebSiteプロジェクト内のinvoice.htmlをご覧ください。(~/Static/TestInvoice1.html). 請注意、請求書には「印刷」メディアタイプ用のカスタムCSSが含まれています。

ソース請求書はブラウザでこのように表示されます:

HTMLファイルからC#でPDFを作成、図 4:


この内容をPDFファイルに変換するためには、上記のHelloWorldの例と似たコードが使用されますが、ソースHTMLファイルが異なる点があります。

// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
' read html from file
Dim html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"))
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"))
VB   C#

結果は:

HTMLファイルからC#でPDFを作成、図5:HTMLからPDFファイルを生成

HTMLからPDFファイルを生成する

素晴らしいです! IronPDFDemo.RenderHtmlAdPdfDemoプロジェクトの下にコードサンプルを見つけてください。

また、この質問をこちらでご覧ください:IronPDFでHTMLドキュメントや文字列をバイト配列と使用する方法

例 2

このセクションでは、例1からの結果のPDFをカスタマイズするのに役立ちます。たとえば、カスタムの余白、文書タイトルを含むヘッダー、作成日とページ番号を含むフッター、標準の請求書が持つ「印刷」メディアタイプのためのカスタムCSSを追加します。 これを行うために、ChromePdfRenderOptions のインスタンスを初期化し、それを ChromePdfRenderer コンストラクタに渡します。

var pdfRenderingOptions= new ChromePdfRenderOptions()
{
    MarginTop = 50,
    MarginBottom = 50,
    TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    },
    TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    },
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
    MarginTop = 50,
    MarginBottom = 50,
    TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    },
    TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    },
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
Dim pdfRenderingOptions= New ChromePdfRenderOptions() With {
	.MarginTop = 50,
	.MarginBottom = 50,
	.TextHeader = New TextHeaderFooter() With {
		.CenterText = "{pdf-title}",
		.DrawDividerLine = True,
		.FontSize = 16
	},
	.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} {time}",
		.RightText = "Page {page} of {total-pages}",
		.DrawDividerLine = True,
		.FontSize = 14
	},
	.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
}
Dim chromePdfRenderer As New ChromePdfRenderer(pdfRenderingOptions)
VB   C#

ヒント: コンストラクタのパラメーターとしてオプションを渡す代わりに、ChromePdfRenderer インスタンスの対応するフィールドを設定することができます。

var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptions
VB   C#

注意:** ヘッダーとフッター機能にはマージ機能が含まれており、マージフィールド全体をサポートします。({ページ}, {総ページ数}, {URL}, {日付}, {時間}, {html-タイトル}, {pdfタイトル})対応するデータで入力できます。

残りのコードは例1と同じです。結果は:

HTMLファイルからC#でPDFを作成する、図6: ヘッダーとフッター付きの請求書を生成する

ヘッダーとフッター付きの請求書を生成する

カスタム余白、ヘッダー、フッター、および「print」メディアタイプ用のCSSが適用されました。 IronPDFDemo.RenderHtmlAdPdfDemoプロジェクトの下にコードサンプルを見つけてください。 詳細設定はIronPDF APIリファレンス.

ステップ 4: RenderUrlAsPdf

セットアップ

このセクションのサンプルを実行するには、IronPDFDemo.DemoWebSiteをローカルでホストする必要があります。 IIS Express でそれを行うには:

  1. DemoWebSiteに移動

  2. 右クリック > スタートアッププロジェクトに設定

  3. デバッグせずに開始(Ctrl+F5)

  4. あなたのマイページに進む{ベースURL (ベースURL (baseurl))}/Static/TestInvoice1.html が正しく動作しているか確認するため。 以下のURLです: http://localhost:51169/Static/TestInvoice1.html (対応するプロジェクト設定を変更しない限り、あなたの場合も同様になります。).

例1

このセクションでは、ホストされているDemoWebSiteの請求書が、HelloWorldの例と同じコードを使用してPDFに変換されます。 違いはホストされたURLにあります。

var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
Dim uri As New Uri("http://localhost:51169/Static/TestInvoice1.html")
Dim urlToPdf = New ChromePdfRenderer()
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"))
VB   C#

結果は:

HTMLファイルからC#でPDFを作成する、図7:ホストされたウェブサイトをPDFに変換

ホストされたウェブサイトをPDFに変換

これは素晴らしいです。そして期待通りに見えます。 IronPDFDemo.RenderUrlAsPdfDemoプロジェクト内にコードサンプルがあります。

例 2

多くのウェブサイトは、しばしば認証方法で保護されています。 このセクションでは、PDFファイルをレンダリングする過程で提供されたユーザー名とパスワードを使用し、カスタマイズを行います。カスタムマージン、ドキュメントタイトルを含むヘッダー、作成日とページを含むフッター、および「print」メディアタイプ用のカスタムCSSを設定します。 請求書のURLはhttpです。://localhost:51169/Invoice

httpにアクセス://localhost:51169/Invoice は「認証が必要」フォームを表示します。

HTMLファイルからC#でPDFを作成する、図8:認証が必要なフォーム

認証が必要なフォーム

注: 資格情報は「testUser」/「testPassword」です。

認証をバイパスする方法は? HttpLoginCredentials を設定することにより:

var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
    PrintOptions = new ChromePdfRenderer()
    {
        MarginTop = 50,
        MarginBottom = 50,
        TextHeader = new TextHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        },
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    },
    // setting login credentials to bypass basic authentication
    LoginCredentials = new HttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
    PrintOptions = new ChromePdfRenderer()
    {
        MarginTop = 50,
        MarginBottom = 50,
        TextHeader = new TextHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        },
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    },
    // setting login credentials to bypass basic authentication
    LoginCredentials = new HttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
Dim uri As New Uri("http://localhost:51169/Invoice")
Dim urlToPdf = New ChromePdfRenderer With {
	.PrintOptions = New ChromePdfRenderer() With {
		.MarginTop = 50,
		.MarginBottom = 50,
		.TextHeader = New TextHeaderFooter() With {
			.CenterText = "{pdf-title}",
			.DrawDividerLine = True,
			.FontSize = 16
		},
		.TextFooter = New TextHeaderFooter() With {
			.LeftText = "{date} {time}",
			.RightText = "Page {page} of {total-pages}",
			.DrawDividerLine = True,
			.FontSize = 14
		},
		.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	},
	.LoginCredentials = New HttpLoginCredentials() With {
		.NetworkUsername = "testUser",
		.NetworkPassword = "testPassword"
	}
}
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))
VB   C#

注: ChromePdfRenderer Example2 と同じカスタマイズが使用されます。

結果は:

HTMLファイルからC#でPDFを作成する、図9:資格情報を使用してHTMLサイトをPDFファイルに生成する

資格情報を使用してPDFファイルに変換されたHTMLサイトを生成する

すべてが整っています。 IronPDFDemo.RenderUrlAsPdfDemoプロジェクトの下にコードサンプルを見つけてください。 HttpLoginCredentialsなしで結果がどうなるか気になる場合は、こちらをご覧ください:

HTMLファイルからC#でPDFを作成、図10:認証情報なしで空のPDFファイルを生成

認証なしで空のPDFファイルを生成する

また、Jeanの.NET HTML to PDF チュートリアル

さらに、IronPDFはPDFとさまざまな方法でやり取りすることもできます。

< 以前
C#でPDFファイルを生成する
次へ >
ASP.NETでC#とIronPDFを使用してPDFファイルを表示する方法