IRONPDFの使用 C#でiTextSharpとIronPDFを使用してPDFにヘッダーとフッターを追加する方法(例付き カーティス・チャウ 公開日:12月 3, 2025 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る PDFドキュメントにヘッダーとフッターを追加する PDF文書にヘッダーとフッターを追加することは、プロフェッショナルなレポート、請求書、ビジネス文書を作成するために不可欠です。 多くの開発者がPdfPageEventHelperとOnEndPageメソッドを使ってiTextSharpの解決策を探していますが、最新の.NETライブラリは同じ結果を得るためにかなり単純なアプローチを提供しています。 このチュートリアルでは、C#を使ってPDFにヘッダーとフッターを追加する方法を、従来のiText 7とIronPDFの合理的な方法を比較しながら説明します。 最終的には、新規ドキュメントの作成から最終的なPDFファイルの生成まで、両方の実装を理解し、プロジェクトの要件に最も適したアプローチを選択できるようになります。 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像1 - IronPDF なぜ PDF のヘッダーとフッターは文書生成において重要なのですか ヘッダーとフッターは、ProfessionalなPDF文書において重要な役割を果たします。 また、画像ロゴによる一貫したブランディング、ページ番号によるページナビゲーション、日付や文書タイトルなどの重要なメタデータの表示、タイムスタンプやバージョン情報による文書の信頼性の確立などが求められます。 企業環境では、ヘッダーとフッターはしばしば法的な意味を持ちます。 財務報告書には、監査証跡としてタイムスタンプが必要です。 契約書には、完全性を保証するためにページ番号が必要です。 社内文書では、各ページに機密保持の表記が必要な場合があります。 これらの要件をプログラムで満たすには、ページレベルのコンテンツインジェクションを確実に処理するPDFライブラリが必要です。 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:イメージ2 - 機能 C#でヘッダーとフッターを追加する最も簡単な方法は何ですか? IronPDFは、.NETアプリケーションでPDFドキュメントにヘッダーとフッターを追加するための最も簡単なアプローチを提供します。 ChromePdfRendererクラスをTextHeaderFooterまたはHtmlHeaderFooterと組み合わせることで、開発者は最小限のコードでヘッダーとフッターを生成できます。 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像3 - PDFにヘッダーとフッターを追加する方法 - IronPDF 古いiTextSharpのパターンでは、開発者はしばしばprivate static void AddContent()のようなヘルパーメソッドや、private static void addcontentのような似た名前のルーチンを作成し、ヘッダーやフッターのロジックを手動で注入していました。 IronPdfはそのような定型文を完全に排除します。 以下は、PDFファイルにヘッダーとフッターの両方を追加する完全な例です: using IronPdf; // Initialize the PDF renderer var renderer = new ChromePdfRenderer(); // Configure the text header with header text renderer.RenderingOptions.TextHeader = new TextHeaderFooter { CenterText = "Quarterly Sales Report", DrawDividerLine = true, FontSize = 14 }; // Configure the text footer with page number renderer.RenderingOptions.TextFooter = new TextHeaderFooter { LeftText = "{date}", RightText = "Page {page} of {total-pages}", DrawDividerLine = true, FontSize = 10 }; // Set margins to accommodate header and footer renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; // Generate PDF from HTML content var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Data</h1><p>Content goes here...</p>"); pdf.SaveAs("report-with-headers.pdf"); using IronPdf; // Initialize the PDF renderer var renderer = new ChromePdfRenderer(); // Configure the text header with header text renderer.RenderingOptions.TextHeader = new TextHeaderFooter { CenterText = "Quarterly Sales Report", DrawDividerLine = true, FontSize = 14 }; // Configure the text footer with page number renderer.RenderingOptions.TextFooter = new TextHeaderFooter { LeftText = "{date}", RightText = "Page {page} of {total-pages}", DrawDividerLine = true, FontSize = 10 }; // Set margins to accommodate header and footer renderer.RenderingOptions.MarginTop = 25; renderer.RenderingOptions.MarginBottom = 25; // Generate PDF from HTML content var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Data</h1><p>Content goes here...</p>"); pdf.SaveAs("report-with-headers.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 上記のソースコードは、いくつかの重要な概念を示しています。TextHeaderFooterクラスは、ヘッダー/フッター領域の左、中央、または右にテキストを配置するためのプロパティを提供します。 DrawDividerLineプロパティは、ヘッダー/フッターとメインドキュメントのコンテンツの間にプロフェッショナルな区切り線を追加します。 {page}、{total-pages}、{date}のようなマージ可能なフィールドは、PDF生成時に動的な値で自動的に入力されます。 出力 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像4 - PDF出力。 IronPdfは自動的にマージン計算を行い、ヘッダーとフッターがドキュメントの内容と重ならないようにします。 TextHeaderFooterクラスはIronSoftware.Drawing.FontTypes列挙からのフォントタイプをサポートしており、外部依存なしに組版を制御できます。 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像5 - クロスプラットフォームの互換性。 実装全体が、明確で読みやすいプロパティ割り当てを持つ1つのコードブロックに収まっていることに注目してください。 別のクラス・ファイルを作成したり、ピクセル位置を計算したり、キャンバス・オブジェクトを管理したりする必要はありません。 このライブラリはこれらの複雑さを抽象化し、開発者がiTextSharpスタイルのパターンを使ったPDF生成の仕組みではなく、コンテンツに集中できるようにします。 HTMLスタイルのヘッダーとフッターはどのように作成しますか? より洗練されたデザインのために、IronPdfのHtmlHeaderFooterクラスは完全なHTMLとCSSスタイリングを可能にします。 このアプローチは、PdfPCellオブジェクトを手動で作成したり、新しいPhraseコンストラクタを使用したりすることなく、ヘッダーに画像ロゴ、複雑なレイアウト、またはブランド固有のスタイルを含める必要がある場合に特に役立ちます。 using IronPdf; using System; var renderer = new ChromePdfRenderer(); // Create an HTML header with logo and styling renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; font-family: Arial, sans-serif;'> <img src='logo.png' style='height: 30px; float: left;' /> <span style='float: right; font-size: 12px; color: #666;'> Confidential Document </span> </div>", MaxHeight = 25, DrawDividerLine = true, BaseUrl = new Uri(@"C:\assets\").AbsoluteUri }; // Create an HTML footer with page numbering renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align: center; font-size: 10px; color: #999;'> <span>Generated on {date} at {time}</span> <br/> <span>Page {page} of {total-pages}</span> </div>", MaxHeight = 20 }; renderer.RenderingOptions.MarginTop = 30; renderer.RenderingOptions.MarginBottom = 25; var pdf = renderer.RenderHtmlAsPdf("<h1>Project Proposal</h1><p>Document content...</p>"); pdf.SaveAs("styled-document.pdf"); using IronPdf; using System; var renderer = new ChromePdfRenderer(); // Create an HTML header with logo and styling renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; font-family: Arial, sans-serif;'> <img src='logo.png' style='height: 30px; float: left;' /> <span style='float: right; font-size: 12px; color: #666;'> Confidential Document </span> </div>", MaxHeight = 25, DrawDividerLine = true, BaseUrl = new Uri(@"C:\assets\").AbsoluteUri }; // Create an HTML footer with page numbering renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align: center; font-size: 10px; color: #999;'> <span>Generated on {date} at {time}</span> <br/> <span>Page {page} of {total-pages}</span> </div>", MaxHeight = 20 }; renderer.RenderingOptions.MarginTop = 30; renderer.RenderingOptions.MarginBottom = 25; var pdf = renderer.RenderHtmlAsPdf("<h1>Project Proposal</h1><p>Document content...</p>"); pdf.SaveAs("styled-document.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel このサンプルコードでは、HTMLヘッダーにテキストと一緒に画像を組み込む方法を紹介しています。 BaseUrl プロパティは、文字列 filename で指定された相対画像 URL を解決するためのルートパスを確立し、会社のロゴやその他のグラフィックを簡単に含めることができます。 MaxHeightプロパティは、ヘッダーが指定された寸法を超えないようにし、一貫したドキュメントレイアウトを維持します。 マージ可能なフィールド({page}, {total-pages}、 {url}、 {date}、 {time}、 {html-title}、 {pdf-title})は、HTMLのヘッダーとフッターで同じように動作し、追加のコードなしで動的なコンテンツ挿入を提供します。 さまざまなヘッダー・スタイルの実装に関する包括的なガイダンスについては、ヘッダーとフッターのHow-Toガイドを参照してください。 HTMLのアプローチは、ブランド化された文書を作成するときに特に輝きます。 マーケティングチームは、開発者が直接統合できるHTMLテンプレートを提供し、承認されたデザインをピクセル単位で完璧に再現することができます。 font-family、color、background-color、border などの CSS プロパティは期待通りに機能し、他のライブラリでは大規模な低レベルコードを必要とするような洗練された視覚的処理を可能にします。 既存の PDF ドキュメントにヘッダーを追加するにはどうすればよいですか? よくある要件は、アップロードされた文書、マージされたファイル、他のシステムで生成されたPDFなど、すでに存在するPDFファイルにヘッダーとフッターを追加することです。 IronPDFはこのシナリオをAddHtmlHeadersとAddHtmlFootersメソッドでエレガントに処理します。 using IronPdf; // Load an existing PDF document var pdf = PdfDocument.FromFile("customer-profile.pdf"); // Define the header to add with header description var header = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: center;'>REVISED COPY - {date}</div>", MaxHeight = 20 }; // Define the footer to add var footer = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: right;'>Page {page}</div>", MaxHeight = 15 }; // Apply headers and footers to all pages pdf.AddHtmlHeaders(header); pdf.AddHtmlFooters(footer); pdf.SaveAs("document-with-new-headers.pdf"); using IronPdf; // Load an existing PDF document var pdf = PdfDocument.FromFile("customer-profile.pdf"); // Define the header to add with header description var header = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: center;'>REVISED COPY - {date}</div>", MaxHeight = 20 }; // Define the footer to add var footer = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: right;'>Page {page}</div>", MaxHeight = 15 }; // Apply headers and footers to all pages pdf.AddHtmlHeaders(header); pdf.AddHtmlFooters(footer); pdf.SaveAs("document-with-new-headers.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel PdfDocumentクラスは、ロードまたはレンダリングされたPDFを表し、レンダリング後の修正のためのメソッドを提供します。 このようにレンダリングと修正を分離することで、PDF文書が複数の処理段階を通過するワークフローが可能になります。 AddHtmlHeadersメソッドは、自動的にすべてのページにヘッダーを適用しますが、ページインデックスのコレクションを渡すことで、特定のページをターゲットにすることもできます。 入力 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像6 - サンプル入力</a 出力 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像7 - 既存のPDFヘッダー出力。 この機能は、スキャンした文書、ユーザーのアップロード、サードパーティのAPIレスポンスなど、さまざまなソースからPDFファイルを受け取る文書管理システムで非常に有用です。 IronPdfは配布やアーカイブの前にブランディングやページ番号を標準化します。 iText 7 のアプローチはどのようなものですか? iText 7(iTextSharpの後継)に詳しい開発者は、ヘッダーとフッターを追加するにはイベントハンドラを実装する必要があることを知っています。 このライブラリは、OnEndPageやOnCloseDocumentのようなドキュメントのライフサイクルイベントに応答する1つのクラスファイルを作成するページイベントシステムを使用しています。 同じヘッダー/フッターの実装がiText 7でどのように見えるかを、パブリッククラスITextEventsパターンを使って示します: using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Kernel.Events; using iText.Kernel.Geom; using iText.Layout.Properties; // Event handler class for headers and footers - similar to PdfPageEventHelper public class ITextEvents : IEventHandler { // Private string for header text private string _header; public string Header { get { return _header; } set { _header = value; } } public void HandleEvent(Event currentEvent) { PdfDocumentEvent docEvent = (PdfDocumentEvent)currentEvent; PdfDocument pdfDoc = docEvent.GetDocument(); PdfPage page = docEvent.GetPage(); Rectangle pageSize = page.GetPageSize(); // Create new PdfCanvas for the contentbyte object PdfCanvas pdfCanvas = new PdfCanvas( page.NewContentStreamBefore(), page.GetResources(), pdfDoc); Canvas canvas = new Canvas(pdfCanvas, pageSize); // Add header text canvas.ShowTextAligned( new Paragraph("Quarterly Sales Report"), pageSize.GetWidth() / 2, pageSize.GetTop() - 20, TextAlignment.CENTER); // Add footer with page number int pageNumber = pdfDoc.GetPageNumber(page); canvas.ShowTextAligned( new Paragraph($"Page {pageNumber}"), pageSize.GetWidth() / 2, pageSize.GetBottom() + 20, TextAlignment.CENTER); canvas.Close(); } } // Usage in main code - private void CreatePdf pattern public static void Main(string[] args) { PdfWriter writer = new PdfWriter("report.pdf"); PdfDocument pdfDoc = new PdfDocument(writer); Document document = new Document(pdfDoc); // Register the event handler for END_PAGE pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, new ITextEvents()); document.Add(new Paragraph("Sales Data")); document.Add(new Paragraph("Content goes here...")); document.Close(); } using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Kernel.Events; using iText.Kernel.Geom; using iText.Layout.Properties; // Event handler class for headers and footers - similar to PdfPageEventHelper public class ITextEvents : IEventHandler { // Private string for header text private string _header; public string Header { get { return _header; } set { _header = value; } } public void HandleEvent(Event currentEvent) { PdfDocumentEvent docEvent = (PdfDocumentEvent)currentEvent; PdfDocument pdfDoc = docEvent.GetDocument(); PdfPage page = docEvent.GetPage(); Rectangle pageSize = page.GetPageSize(); // Create new PdfCanvas for the contentbyte object PdfCanvas pdfCanvas = new PdfCanvas( page.NewContentStreamBefore(), page.GetResources(), pdfDoc); Canvas canvas = new Canvas(pdfCanvas, pageSize); // Add header text canvas.ShowTextAligned( new Paragraph("Quarterly Sales Report"), pageSize.GetWidth() / 2, pageSize.GetTop() - 20, TextAlignment.CENTER); // Add footer with page number int pageNumber = pdfDoc.GetPageNumber(page); canvas.ShowTextAligned( new Paragraph($"Page {pageNumber}"), pageSize.GetWidth() / 2, pageSize.GetBottom() + 20, TextAlignment.CENTER); canvas.Close(); } } // Usage in main code - private void CreatePdf pattern public static void Main(string[] args) { PdfWriter writer = new PdfWriter("report.pdf"); PdfDocument pdfDoc = new PdfDocument(writer); Document document = new Document(pdfDoc); // Register the event handler for END_PAGE pdfDoc.AddEventHandler(PdfDocumentEvent.END_PAGE, new ITextEvents()); document.Add(new Paragraph("Sales Data")); document.Add(new Paragraph("Content goes here...")); document.Close(); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel この実装は、ライブラリ間の基本的なアーキテクチャの違いを示しています。 iText 7では、IEventHandlerを実装するハンドラクラスを別途作成し(従来のPdfPageEventHelperと同様)、float座標を使用してページ位置を手動で計算し、描画操作のためにPdfCanvasとCanvasオブジェクトを管理する必要があります。 ハンドラは、END_PAGEイベントタイプを通して各ページのイベントを受け取ります。 出力 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像8 - 例とC#でiTextSharpを使用してPDFでヘッダーとフッターを追加する方法。 iText 7の座標系はページの左下隅を起点としているため、位置決めのために明示的な計算が必要です。 最終的なページ数を取得するには、public override void OnCloseDocument<//code> イベント中に記入されるテンプレート <code>PdfTemplate headerTemplate パターンがさらに複雑になる必要があります。 ウェブ開発のバックグラウンドを持つ開発者にとって、この座標ベースのアプローチは、宣言的なHTML/CSSモデルと比較して異質に感じられます。 各ポジショニングの決定には、ページの寸法、マージンのオフセット、テキストの測定など、HTMLベースのアプローチでは抽象化される問題を理解する必要があります。 iText 7 は AGPL ライセンスの下で動作します。つまり、商用ライセンスを購入しない限り、iTextSharp または iText 7 を使用するアプリケーションはオープンソースでなければなりません。 これは、商用プロジェクト用のライブラリを選択する際に重要な考慮事項です。 一般的なシナリオにおける2つのアプローチの比較 合計によるページ番号のような機能を実装する場合、違いはより顕著になります。 IronPdfでは{total-pages}<//code>マージ可能なフィールドがこれを自動的に処理します。 iText 7では、OnCloseDocumentイベント中に記入されるPdfFormXObjectテンプレートを使用する必要があります。 また、問題のトラブルシューティングを行う際にも、開発経験は大きく異なります。 IronPdfのHTMLベースのアプローチは、PDF生成コードに統合する前にブラウザでヘッダーデザインをプレビューできることを意味します。 何か間違っているように見える場合は、使い慣れたブラウザの開発者ツールを使用して、HTMLとCSSを調整することができます。 iText 7では、位置決めの問題をデバッグするために、テストPDFを繰り返し生成し、手動で座標を測定する必要があります。 HTMLベースのアプローチは、開発者が既存のWeb開発スキルを活用できることを意味します。 HTMLとCSSで実現可能なレイアウトであれば、フレックスボックスの配置からレスポンシブデザインまで、IronPDFのヘッダーとフッターで動作します。 HTMLヘッダーとフッターの例は、さらなるスタイリングの可能性を示しています。 新しい PdfPTable 構造体を作成し、新しい Phrase コンストラクタを使ってテキストを追加し、新しい float 配列を使って要素を手動で配置する必要がある iText のアプローチと比較してください。 クロスプラットフォームやコンテナのデプロイについてはどうですか? 最近の.NETアプリケーションは、Linuxコンテナ、Azure App Services、またはAWS Lambda関数にデプロイされることがよくあります。 IronPdfはWindows、Linux、macOSのクロスプラットフォームに対応しています。 このライブラリはDockerコンテナですぐに動作するため、マイクロサービス・アーキテクチャやクラウドネイティブ・アプリケーションに適しています。 このクロスプラットフォーム機能は、ヘッダーとフッターの機能にも及んでいます。Windowsの開発マシンでヘッダー付きのPDFを生成するコードと同じものが、Linuxの本番サーバーにデプロイされても同じ出力を生成します。 追加のフォントをインストールしたり、レンダリングエンジンを設定したり、プラットフォーム固有のコードパスを処理したりする必要はありません。 コンテナ化されたワークロードを実行しているチームのために、IronPdfのDockerデプロイメントドキュメントは、様々なベースイメージとオーケストレーションプラットフォームの設定ガイダンスを提供します。 環境間で一貫した動作をするライブラリは、PDF生成ワークフローでよくある"私のマシンでは動作しない"というバグの原因を排除します。 ページごとに異なるヘッダーをどのように扱いますか? 文書によっては、最初のページに異なるヘッダーを付ける(またはヘッダーを付けない)必要がありますが、それ以降のページは標準フォーマットを使用します。 IronPDFはページインデックスに基づくヘッダーアプリケーションを通してこれをサポートします。void OnEndPageハンドラーの中で条件をチェックしたり、int iループカウンターを管理する必要はありません: using IronPdf; using System.Linq; var renderer = new ChromePdfRenderer(); // Build multi-page HTML and include a print page-break between pages var pages = new List<string> { "<section><h1>Title Page</h1><p>Intro text on page 1.</p></section>", "<section><h2>Report</h2><p>Detailed report content on page 2.</p></section>", "<section><h2>Appendix</h2><p>Appendix content on page 3.</p></section>" }; var sb = new StringBuilder(); sb.AppendLine("<!doctype html><html><head><meta charset='utf-8'>"); sb.AppendLine("<style>"); sb.AppendLine(" body { font-family: Arial, sans-serif; margin: 20px; }"); sb.AppendLine(" .page-break { page-break-after: always; }"); sb.AppendLine(" @media print { .page-break { display:block; } }"); sb.AppendLine("</style>"); sb.AppendLine("</head><body>"); for (int i = 0; i < pages.Count; i++) { sb.AppendLine(pages[i]); // add page break between pages, but not after last page if (i < pages.Count - 1) sb.AppendLine("<div class='page-break'></div>"); } sb.AppendLine("</body></html>"); var multiPageHtmlContent = sb.ToString(); var pdf = renderer.RenderHtmlAsPdf(multiPageHtmlContent); // Create the standard header for checking header footer placement var standardHeader = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: center;'>Standard Header - Page {page}</div>", MaxHeight = 20 }; // Apply to all pages except the first (index 0) - start row at 1 var pageIndices = Enumerable.Range(1, pdf.PageCount - 1).ToList(); pdf.AddHtmlHeaders(standardHeader, 1, pageIndices); pdf.SaveAs("document-skip-first-page-header.pdf"); using IronPdf; using System.Linq; var renderer = new ChromePdfRenderer(); // Build multi-page HTML and include a print page-break between pages var pages = new List<string> { "<section><h1>Title Page</h1><p>Intro text on page 1.</p></section>", "<section><h2>Report</h2><p>Detailed report content on page 2.</p></section>", "<section><h2>Appendix</h2><p>Appendix content on page 3.</p></section>" }; var sb = new StringBuilder(); sb.AppendLine("<!doctype html><html><head><meta charset='utf-8'>"); sb.AppendLine("<style>"); sb.AppendLine(" body { font-family: Arial, sans-serif; margin: 20px; }"); sb.AppendLine(" .page-break { page-break-after: always; }"); sb.AppendLine(" @media print { .page-break { display:block; } }"); sb.AppendLine("</style>"); sb.AppendLine("</head><body>"); for (int i = 0; i < pages.Count; i++) { sb.AppendLine(pages[i]); // add page break between pages, but not after last page if (i < pages.Count - 1) sb.AppendLine("<div class='page-break'></div>"); } sb.AppendLine("</body></html>"); var multiPageHtmlContent = sb.ToString(); var pdf = renderer.RenderHtmlAsPdf(multiPageHtmlContent); // Create the standard header for checking header footer placement var standardHeader = new HtmlHeaderFooter { HtmlFragment = "<div style='text-align: center;'>Standard Header - Page {page}</div>", MaxHeight = 20 }; // Apply to all pages except the first (index 0) - start row at 1 var pageIndices = Enumerable.Range(1, pdf.PageCount - 1).ToList(); pdf.AddHtmlHeaders(standardHeader, 1, pageIndices); pdf.SaveAs("document-skip-first-page-header.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel AddHtmlHeadersの2番目のパラメータは、マージ可能なフィールド{page}の開始ページ番号を指定し、3番目のパラメータは、ヘッダを受け取るページインデックスのコレクションを受け入れます(終了行は必要ありません-リストが正確にどのページかを定義します)。 このきめ細かなコントロールにより、複雑な条件ロジックを使用せずに、複雑なドキュメントレイアウトが可能になります。 高度なヘッダーとフッターの例は、奇数/偶数ページの区別を含む、追加のシナリオをカバーしています。 出力 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像9 - ページごとに異なるヘッダを出力する。 ヘッダーとフッターの外観を制御する設定は何ですか? ヘッダーとフッターの微調整には、位置や視覚的な表現に影響するいくつかのプロパティが含まれます。 TextHeaderFooterクラスは、個別のヘッダー・セクションと個別のフッター・セクションの表示方法を制御するためのカスタマイズ・オプションを提供します: var footer = new TextHeaderFooter { LeftText = "Confidential", CenterText = "{pdf-title}", RightText = "Page {page}", Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 9, DrawDividerLine = true, DrawDividerLineColor = IronSoftware.Drawing.Color.Gray }; renderer.RenderingOptions.TextFooter = footer; renderer.RenderingOptions.MarginBottom = 20; var footer = new TextHeaderFooter { LeftText = "Confidential", CenterText = "{pdf-title}", RightText = "Page {page}", Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 9, DrawDividerLine = true, DrawDividerLineColor = IronSoftware.Drawing.Color.Gray }; renderer.RenderingOptions.TextFooter = footer; renderer.RenderingOptions.MarginBottom = 20; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel Font プロパティは、Helvetica、Arial、Courier、Times New Roman などの Iron Software.Drawing.FontTypes の値を受け入れます。 Spacingプロパティは、区切り線とテキストコンテンツとの間のギャップを制御します。 これらのプロパティは、CSSの知識を必要とせずにタイポグラフィの制御を提供します。 HTML ベースのヘッダーとフッターの場合、LoadStylesAndCSSFromMainHtmlDocument プロパティは、オプションで、レンダリングされるメイン ドキュメントからスタイルを継承し、ヘッダーと本文コンテンツ間の視覚的な一貫性を確保します。 これは、ヘッダーとフッターの領域にも適用されるべきカスタムCSSをメインドキュメントで使用している場合に特に役立ちます。 DrawDividerLineプロパティは、ヘッダー/フッターとメインコンテンツとの間に線の区切りを描くための、プロフェッショナルな水平ルールを追加します。 DrawDividerLineColorを使って線の色をカスタマイズし、ブランドカラーや文書のテーマに合わせることができます。 ページ番号を超える動的コンテンツをどのように実装しますか? マージ可能なフィールドシステムは、レンダリング中に自動的に入力されるいくつかの動的な値をサポートしています: {page}<//code> - 現在のページ番号 {total-pages}<//code> - ドキュメントの最終ページ数 {date}<//code> - ローカルフォーマットの現在の日付 {time}<//code> - ローカルフォーマットの現在時刻 {html-title}<//code> - ソース HTML の <//code> タグの内容。 {pdf-title}<//code> - PDFドキュメントのメタデータのタイトル {url}<//code> - WebアドレスからレンダリングするときのソースURL これらの分野を組み合わせることで、ビジネス文書で一般的な洗練されたフッターデザインが可能になります。 法務部門では、文書のタイトル、日付、ページ数を示すフッターを必要とすることがよくあります。 財務報告書には、法令遵守のためタイムスタンプが必要な場合があります。 マージ可能なフィールドは、各文書タイプ用のカスタムコードを必要とせずに、これらの要件を処理します。 真に動的なコンテンツ-実行時に決定される値-については、HtmlFragmentプロパティに代入する前に、補間された値でHTMLフラグメント文字列を構築することができます。 このアプローチでは、データベースから取得した値、ユーザー情報、または計算データを含むヘッダーを使用できます: string userName = GetCurrentUserName(); string documentVersion = "v2.3.1"; renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = $"<div>Prepared by: {userName} Version: {documentVersion} Page {{page}}</div>", MaxHeight = 20 }; string userName = GetCurrentUserName(); string documentVersion = "v2.3.1"; renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = $"<div>Prepared by: {userName} Version: {documentVersion} Page {{page}}</div>", MaxHeight = 20 }; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 文字列補間を使用する際、{page}の周りにある二重中括弧に注意してください-これは中括弧文字をエスケープするので、マージ可能なフィールドは最終的な文字列で保持されます。 このパターンは、イベント駆動型のコードで object sender, EventArgs e パラメータを扱う方法と同じように動作し、フレームワークのプレースホルダをそのまま維持しながら、独自の値を注入します。 IronPDFを始めよう IronPDFを使えば、PDFドキュメントにヘッダーとフッターを実装するのに数分しかかかりません。 NuGetパッケージマネージャーを使用してライブラリをインストールしてください: Install-Package IronPdf How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:イメージ10 - インストール または.NET CLIを使用して: dotnet add package IronPDF dotnet add package IronPDF SHELL ライブラリは外部依存を必要とせず、インストール後すぐに動作します。 Getting Started ドキュメントから始めて、PDF 生成と操作の全機能を探求してください。 無料トライアルでIronPDFをお試しいただき、ご自身のプロジェクトでこれらのヘッダーとフッターの実装をテストしてください。 本番環境での展開のために、ライセンスオプションは、個人の開発者から企業チームまで対応します。 How to Add Header and Footer in PDF Using iTextSharp and IronPDF in C# with Example:画像11 - ライセンス 結論 C# で PDF 文書にヘッダーとフッターを追加するには、ライブラリの選択によって、簡単なものから複雑なものまであります。iText 7がpublic override void OnEndPageのようなイベントハンドラやPdfWriter writer、PdfContentByte cbパターンを使ったキャンバス操作を通して低レベルのコントロールを提供するのに対して、IronPDFはおなじみのHTMLやCSSの概念を活用した直感的なAPIを通して同じ機能を提供します。 迅速な実装と保守可能なコードを優先する開発者のために、IronPDFのアプローチはヘッダーとフッターの実装をpublic class PdfFooterハンドラー、PdfPCell cellコンフィギュレーション、新しいPdfPTable構造を含む数十行からわずか数行のプロパティ割り当てに削減します。 HTMLベースのスタイリングオプションは、PDF固有の座標系を学んだり、コンテンツ処分ヘッダーを管理したりすることなく、洗練されたデザインの可能性を広げます。 会社のブランディングを伴う請求書の作成、ページナビゲーションを伴うレポート、タイムスタンプを必要とする契約書など、プロフェッショナルなヘッダーとフッターは、文書の信頼性を確立します。 IronPDFドキュメントは、.NETアプリケーションにこれらと他のPDF機能を実装するための追加例とAPI参照資料を提供します。 よくある質問 iTextSharpを使ってPDFにヘッダーとフッターを追加する方法を教えてください。 iTextSharpを使用してPDFにヘッダーとフッターを追加するには、PDF作成プロセス中にドキュメントのページをカスタマイズするページイベントハンドラを定義することができます。これには、OnEndPageメソッドをオーバーライドして、必要なヘッダーとフッターのコンテンツを含めることが含まれます。 ヘッダーとフッターを追加するためにIronPDFを使う利点は何ですか? IronPdfは分かりやすいAPIを提供し、様々なスタイリングオプションをサポートすることで、ヘッダーとフッターを追加するプロセスを簡素化します。C#プロジェクトとシームレスに統合され、HTMLからPDFへの変換のような追加機能を提供し、PDF操作のための多目的なツールとなっています。 IronPdfとiTextSharpは一緒に使えますか? はい、IronPDFとiTextSharpはC#プロジェクトで一緒に使うことができます。iTextSharpはプログラムでPDFを操作するのに適していますが、IronPDFはHTMLをPDFに変換するような追加機能を提供することで補完します。 IronPDFを使ってヘッダーとフッターをスタイルする方法はありますか? IronPDFはHTMLとCSSを使ってヘッダーとフッターをスタイルすることができます。これにより、開発者はPDFドキュメントの視覚的に魅力的なデザインやレイアウトを柔軟に作成することができます。 IronPDFはヘッダーやフッターのページ番号をどのように扱うのですか? IronPDFはヘッダーとフッターに自動的にページ番号を挿入することができます。総ページ数を含めたり、開始ページ数を調整するなど、ニーズに応じてページ番号をフォーマットするオプションを提供します。 IronPDFでC#を使ってPDFを操作する利点は何ですか? IronPDFでPDFを操作するためにC#を使用することは、強力な型安全性、.NETアプリケーションとの容易な統合、開発プロセスを強化する幅広いライブラリやツールへのアクセスを提供します。IronPDFのC# APIは直感的でユーザーフレンドリーに設計されているため、あらゆるレベルの開発者がアクセス可能です。 IronPDFを使って既存のドキュメントをPDFに変換できますか? はい、IronPDFはHTML、ASPX、その他のウェブベースのコンテンツを含む様々なドキュメントフォーマットをPDFに変換することができます。この機能はウェブページや動的に生成されたコンテンツからPDFを作成する場合に特に便利です。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 12月 18, 2025 .NET PDF API .NET開発者のためのチュートリアル IronPDFを使って.NET PDF APIを作成する方法 詳しく読む 公開日 12月 18, 2025 Aspose C#とIronPDFを使ってPDFを作成する方法 開発者向けにデザインされたこのステップバイステップのガイドで、Aspose C#とIronPDFを使ってPDFを作成する方法を学んでください。 詳しく読む 公開日 12月 18, 2025 IronPDF .NET Core PDFジェネレータの作成 IronPDFを使用して.NET Coreで強力なPDFジェネレーターを構築します。HTMLをPDFに変換し、請求書を作成し、ピクセルパーフェクトレンダリングでレポートを生成します。 詳しく読む IronPDFを使用したダイナミックPDF生成.NETC#とIronPDFを使用してASP.NET...
公開日 12月 18, 2025 Aspose C#とIronPDFを使ってPDFを作成する方法 開発者向けにデザインされたこのステップバイステップのガイドで、Aspose C#とIronPDFを使ってPDFを作成する方法を学んでください。 詳しく読む
公開日 12月 18, 2025 IronPDF .NET Core PDFジェネレータの作成 IronPDFを使用して.NET Coreで強力なPDFジェネレーターを構築します。HTMLをPDFに変換し、請求書を作成し、ピクセルパーフェクトレンダリングでレポートを生成します。 詳しく読む