ASP.NETでのASPXページをPDFに変換

チャクニット・ビン
チャクニット・ビン
2018年8月28日
更新済み 2025年2月17日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

このASPXからPDFへのチュートリアルでは、ASPXをPDFに変換する方法についてステップバイステップで説明します。 ASPXページをASP.NETウェブアプリケーションでPDFとして保存する。

ユーザーは、.aspxファイル拡張子を持つASPXファイルをGoogle Chromeで開かないようにするべきです。 私たちはエンジニアリングチームに、.NETコードを使用してASPXを自動的にPDFに変換するよう依頼します! CTRL Pを押す必要はまったくありません! ASPXインターネットメディアを変換してPDFとして保存するサーバーベースの方法があります。

ファイルの動作と名前の設定、ヘッダーとフッターの追加、印刷オプションの変更、改ページの追加、非同期とマルチスレッドの組み合わせなどの設定を適用します。

ASPXファイルをPDFに変換する方法

ASP.NET向けのMicrosoft Webフォームアプリケーションは、洗練されたウェブサイト、オンラインバンキング、イントラネット、および会計システムの開発によく使用されます。 ASP.NET (ASPX) ウェブサイトの一般的な機能の一つには、請求書、チケット、または管理レポートなどの動的なPDFファイルを生成し、ユーザーがPDF形式でダウンロードできるようにすることがあります。

このチュートリアルでは、IronPDF for .NET ソフトウェアコンポーネントを使用して、任意の ASP.NET Web フォームを PDF に変換する方法 (ASP.NET to PDF) を示します。 HTMLは通常ウェブページとしてレンダリングされますが、PDFとしてレンダリングしてダウンロードやウェブブラウザでの表示に使用されます。 添付されたソースプロジェクトは、C#を使用してASP.NETでウェブページをPDFに変換する方法を示しています。

WebページをIronPDFおよびそのAspxToPdfクラスを使用してレンダリングするときに、HTMLからPDFへの変換(ASPXからPDFへの変換)を実現します。

ASPXファイルコンバーターの無料版をIronPDFからインストールする

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

NuGetでインストール

Visual Studioで、プロジェクトのソリューション・エクスプローラーを右クリックし、"Manage NuGet Packages... "を選択します。 そこからIronPDFを検索して、最新バージョンをインストールするだけです... ダイアログボックスが表示されたら、[OK]をクリックしてください。

これは、フレームワーク 4.6.2 以上、または .NET Core 2 以上のいずれの C# .NET フレームワークプロジェクトでも動作します。 VB.NETプロジェクトでも同様に機能します。

Install-Package IronPdf

NuGetからIronPdfをダウンロードする

DLL経由でインストール

別の方法として、IronPDF DLL はIronPDF パッケージダウンロードからダウンロードして、プロジェクトまたは GAC に手動でインストールできます。

IronPDFを使用するcsクラスファイルの冒頭にこの文を追加することを忘れないでください:


using IronPdf;

ASP.NETウェブページをPDFに変換

通常のASPX「Webフォーム」から始め、HTMLとしてレンダリングします。 その後、ASPXページをPDFファイル形式に変換します。

添付されたサンプルソースコードでは、ビジネス請求書「Invoice.aspx」をレンダリングしました。これは、ASP.NETページとしてレンダリングされたシンプルなHTMLビジネス請求書です。

HTMLページにはCSS3スタイルシートが含まれ、画像やJavaScriptも含まれる場合があります。

このASP.NETウェブページをHTMLではなくPDFにレンダリングするには、C#(またはVB.NET)のコードを開き、Page_Loadイベントに次のコードを追加する必要があります:

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
$vbLabelText   $csharpLabel

以下が必要なすべてです: HTML は現在 PDF としてレンダリングされます。 ハイパーリンク、スタイルシート、画像、そしてHTMLフォームも保持されます。 これは、ユーザーが自分のブラウザでHTMLをPDFに印刷した場合の出力に非常に似ています。 IronPDFは、Google Chromeを支えるChromiumウェブブラウザ技術を基盤に構築されています。

全体のC#コードは次のようになります:ASPXページをActive Server PagesでPDFに変換します。

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

ASPXファイルをPDFに変換する設定を適用する

ASPXファイルを.NET Web Formsを使用して生成されたPDFに変換する際に、調整や最適化のための多くのオプションがあります。

これらのオプションは、IronPDF API リファレンスでオンラインで完全に文書化されています。

PDFファイルの動作設定

InBrowserファイルの動作は、PDFを直接ユーザーのブラウザに表示しようとします。 これはすべてのウェブブラウザーで常に可能であるわけではありませんが、通常、最新の標準準拠のブラウザーの一般的な機能です。


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);

添付ファイルの動作によりPDFがダウンロードされます。


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);

3.2.PDFファイル名の設定

追加のパラメーターを追加することで、PDFドキュメントのファイル名を設定することもできます。 これにより、ユーザーがダウンロードまたは保持する際に、ファイルの名前を制御することができます。 ASPXページをPDFとして保存すると、その名前がPDFドキュメントに付けられます。


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");

3.3.PDF印刷オプションの変更

PDFの出力は、IronPdf.ChromePdfRendererクラスのインスタンスを追加することで制御できます。 ChromePdfRenderer API リファレンス

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
    EnableJavaScript = false,
    //.. many more options available
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {.EnableJavaScript = False}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
$vbLabelText   $csharpLabel

利用可能なPDFレンダリングオプションには以下が含まれます:

  • CreatePdfFormsFromHtml は ASPX フォーム要素を編集可能な PDF フォームに変換します。
  • CssMediaType Screen または Print CSS スタイルおよびスタイルシート。 こちらの詳細なチュートリアルと比較画像をご覧ください。
  • CustomCssUrl は、レンダリング前にHTMLにカスタムCSSスタイルシートを適用できます。 ローカルファイルのパス、またはリモートURLである可能性があります。
  • EnableMathematicalLaTex 数学的なLaTeX要素のレンダリングを有効または無効にします。
  • EnableJavaScriptは、ページがレンダリングされる前にJavaScriptとJSONを実行できるようにします。 Ajax / Angular アプリケーションからの印刷に最適です。 また、「WaitFor のガイド」もご覧ください。
  • Javascript は、すべてのHTMLが読み込まれた後、PDFのレンダリング前に実行するカスタムJavaScript文字列を指定します。
  • JavascriptMessageListener ブラウザのJavaScriptコンソールメッセージが利用可能になるたびに呼び出されるメソッドコールバック。
  • FirstPageNumber ヘッダーフッター の最初のページ番号。 デフォルトは1です。
  • TableOfContents は、HTMLドキュメント内でidが "ironpdf-toc" の要素が見つかった場所に目次を生成します。
  • TextHeader は、すべてのPDFページのフッターコンテンツをテキストとして設定します。 メールマージ」をサポートし、URLを自動的にハイパーリンクに変換します。
  • TextFooter は、すべてのPDFページのヘッダーコンテンツをテキストとして設定します。 メールマージ」をサポートし、URLを自動的にハイパーリンクに変換します。
  • HtmlHeader は、コンテンツ文字列やHTMLを使用して、すべてのPDFページにヘッダーコンテンツを設定します。
  • HtmlFooter は、コンテンツ文字列やHTMLを使用して、すべてのPDFページのフッターコンテンツを設定します。
  • MarginBottom 下部のPDF用紙の余白(ミリメートル単位)。 枠なしのPDFにする場合はゼロに設定してください。
  • MarginLeft 左側のPDF用紙の余白(ミリメートル単位)。 枠なしのPDFにする場合はゼロに設定してください。
  • MarginRight 右側のPDF用紙マージンをミリメートルで指定します。 枠なしのPDFにする場合はゼロに設定してください。
  • MarginTop 上部PDF用紙の余白をミリメートルで指定します。 枠なしのPDFにする場合はゼロに設定してください。
  • UseMarginsOnHeaderAndFooter ヘッダーとフッターをレンダリングする際に、メインドキュメントの余白値を使用するかどうかを指定します。
  • PaperFit: PDFの「紙」ページにコンテンツを配置する方法を制御するための仮想ペーパー レイアウトを設定するマネージャー。 デフォルトのChrome動作、ズーム、レスポンシブCSS3レイアウト、ページに合わせたスケール、および連続フィードスタイルのPDFページ設定のオプションを含みます。
  • PaperOrientation PDFの用紙の向き。 横向き または 縦向き.
  • PageRotation 既存のドキュメントからページを回転 詳細な説明とコード例
  • PaperSize System.Drawing.Printing.PaperKindを使用してPDFページの出力用紙サイズを設定します。
  • SetCustomPaperSizeinCentimeters 用紙サイズをセンチメートルで設定します。
  • SetCustomPaperSizeInInches インチで用紙サイズを設定します。
  • SetCustomPaperSizeinMilimeters ミリメートル単位で用紙サイズを設定します。
  • SetCustomPaperSizeinPixelsOrPoints 画面のピクセルまたはプリンターポイントで用紙サイズを設定します。
  • ForcePaperSize は、HTML から PDF を生成した後にページをリサイズすることにより、PaperSize で指定されたページサイズを正確に強制するかどうかを指定します。
  • PrintHtmlBackgrounds HTML画像の背景を印刷します。
  • グレースケール は、フルカラーの代わりにグレーの濃淡でグレースケールのPDFを出力します。
  • WaitFor は、待機メカニズムの設定を保持するラッパーオブジェクトです。 JavaScript、Ajax、アニメーションのレンダリングを検討する際に役立ちます。

    • PageLoad: 待機せずにデフォルトでレンダリングします。

    • RenderDelay: 任意の待機時間を設定します。

    • フォント: すべてのフォントが読み込まれるまで待機します。

    • JavaScript: JavaScript関数でレンダーをトリガーする。

    • HTML 要素: 特定の HTML 要素(要素の ID、名前、タグ名、クエリセレクタなど)がターゲット要素になるのを待機します。
  • NetworkIdle: ネットワークアイドルを待機中(0、2、またはカスタム量)。
  • タイトル PDFドキュメントの「タイトル」メタデータ。
  • InputEncoding 入力文字エンコーディングを文字列として指定します。 UTF-8はASP.NETのデフォルトです
  • RequestContext はレンダーのリクエストコンテキストを指定します。
  • タイムアウト 秒単位でのレンダータイムアウト。

4. ASPX PDFにヘッダーとフッターを追加

IronPDFを使用すると、PDF出力にヘッダーとフッターを追加できます。

これを行う最も簡単な方法は、TextHeaderFooter クラスを使用することで、現在の時刻やページ番号などの動的なデータを簡単に追加できる基本的なレイアウトをサポートしています。

4.1. ASPXからPDFへのヘッダーとフッターの例

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                TextHeader = new IronPdf.TextHeaderFooter()
                {
                    CenterText = "Invoice",
                    DrawDividerLine = false,
                    Font = FontTypes.Arial,
                    FontSize = 12
                },
                TextFooter = new IronPdf.TextHeaderFooter()
                {
                    LeftText = "{date} - {time}",
                    RightText = "Page {page} of {total-pages}",
                    Font = IronSoftware.Drawing.FontTypes.Arial,
                    FontSize = 12,
                },
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
        }
    }
}
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.TextHeader = New IronPdf.TextHeaderFooter() With {
					.CenterText = "Invoice",
					.DrawDividerLine = False,
					.Font = FontTypes.Arial,
					.FontSize = 12
				},
				.TextFooter = New IronPdf.TextHeaderFooter() With {
					.LeftText = "{date} - {time}",
					.RightText = "Page {page} of {total-pages}",
					.Font = IronSoftware.Drawing.FontTypes.Arial,
					.FontSize = 12
				}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

また、CSS、画像、ハイパーリンクもサポートするHtmlHeaderFooterクラスを使用して、HTMLヘッダーとフッターを生成することもできます。

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-5.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                MarginTop = 50, // make sufficiant space for an HTML header
                HtmlHeader = new IronPdf.HtmlHeaderFooter()
                {
                    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
                }
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.MarginTop = 50,
				.HtmlHeader = New IronPdf.HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

例にあるように、プレースホルダーを使用して、動的テキストまたはHTMLをヘッダー/フッターに「マージ」することがあります:

  • {page}: PDFの現在のページ番号。
  • {total-pages}:PDF内の総ページ数として。
  • {url}:PDFドキュメントがレンダリングされたWeb URL。
  • {date}: サーバーのシステム環境に適した形式での今日の日付。
  • {time}: 24時間制での時間(時:分)
  • {html-title}: ASPX Webフォームのタグからtitleを挿入します。
  • {pdf-title}: ドキュメントファイル名用。

5. ASPXファイルをPDFに適用するテクニック:ページ分割

HTMLが一般的に長いページに「流れる」のに対し、PDFはデジタルペーパーをシミュレートし、一貫したページに分割されています。 以下のコードをASPXページに追加すると、.NETで生成されたPDFにページ区切りが自動的に作成されます。

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-6.cs
<div style='page-break-after: always;'>&nbsp;</div>
HTML

6.パフォーマンスのために非同期とマルチスレッドを組み合わせる

IronPDFは、.NET Framework 4.6.2、または.NET Core 2以上で構築されました。 フレームワーク4.6.2以上のプロジェクトでは、非同期機能を使用して複数のドキュメントを扱う際のパフォーマンスを向上させることができます。

AsyncをマルチスレッドCPUやParallel.ForEachコマンドと組み合わせることで、PDFフォーマットの一括処理が大幅に改善されます。

ASP.NETソースコードとしてダウンロード

このチュートリアルのASPXファイルからPDFへの変換ソースコードは、圧縮されたVisual Studio Webアプリケーションプロジェクトとしてダウンロード可能です。

このチュートリアルをASP.NET Visual Studioプロジェクトとしてダウンロード

無料ダウンロードには、設定が適用された状態でPDFとしてレンダリングされたWebページを示すC# ASP.NET Web Formsプロジェクトの動作するコード例が含まれています。 このチュートリアルが、ASPXファイルをPDFとして保存する方法の学習に役立ったことを願っています。

今後

一般的に、あらゆるプログラミング技術を学ぶ最良の方法は、独自のASP.NETプロジェクトで実験を行うことです。 これはIronPDFのASPX to PDFコンバーターを試すことを含みます。

開発者は IronPdf.AspxToPdf クラス リファレンス にも興味を持つかもしれません。

8. ASPXをPDFに変換するチュートリアル動画を視聴する


チュートリアル クイック アクセス

Brand Visual Studio related to チュートリアル クイック アクセス

このチュートリアルをソースコードとしてダウンロード

The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. 無料ダウンロードには、C# ASP.NET Web Forms プロジェクトの作業コード例が含まれており、設定が適用された PDF としてレンダリングされたウェブページを示しています。 ダウンロード

このチュートリアルをGitHubで探索する

このC# ASPX-To-PDFプロジェクトのコードは、ASP.NETウェブサイトプロジェクトとしてGitHubにC#とVB.NETで利用可能です。さらにIronPDFの使用を助けるため、ぜひGitHubでフォークしてください。「ASPXをPDFに変換するにはどうするの?」と聞いている人がいたら、自由にこれを共有してください。

C# ASPX から PDF へのウェブサイトプロジェクト C#を使用したPDF作成のための高度なASP.NETページからPDFサンプル VB.NETでPDFを作成するためのASP.NET PDFの例
Github Icon related to チュートリアル クイック アクセス
Html To Pdf Icon related to チュートリアル クイック アクセス

C# PDFクイックスタートガイドをダウンロード

.NETアプリケーションでのPDF開発を簡単にするために、私たちはクイックスタートガイドをPDF文書としてまとめました。この "Cheat-Sheet "はC#とVB.NETでPDFを生成、編集するための一般的な関数やサンプルへのクイックアクセスを提供し、.NETプロジェクトでIronPDFを使い始める時間を短縮します。

ダウンロード

APIリファレンスを表示

IronPDFのすべての機能、名前空間、クラス、メソッドフィールド、列挙型の詳細を説明するIronPDFのAPIリファレンスをご覧ください。

IronPDF API リファレンスを表示
Documentation related to チュートリアル クイック アクセス
チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。