フッターコンテンツにスキップ
IRONPDFの使用

.NET CoreでPDFファイルを作成する方法

PDF ドキュメントをプログラムで作成することは、一般的なアプローチであり、現代の Web アプリケーションで頻繁に求められる要件です。 請求書、レポート、またはドキュメントベースのシステムを構築する場合にも、ASP アプリケーションや .NET Core で効果的に PDF ファイルを作成する方法を知ることが不可欠です。 このチュートリアルでは、IronPDF を使用して .NET Core で PDF ファイルを作成するタスクを処理するための最良の方法を探ります。 これは PDF 生成機能を簡素化する強力な .NET Core ライブラリです。 包括的な技術詳細については、公式ドキュメントを参照してください。

IronPDFを始めよう

IronPDF は、複雑な PDF 作成をシンプルな操作に変換する包括的な .NET Core PDF ライブラリです。 要素を手動で描画する従来のアプローチとは異なり、IronPDF は HTML マークアップと CSS を活用して、デザイン要件を正確に満たす PDF ファイルを生成します。

.NET Core ライブラリ プロジェクトで PDF を作成し始めるには、Visual Studio のパッケージ マネージャー コンソールを使用して次のコマンドを実行し、IronPDF NuGet パッケージをインストールします。

Install-Package IronPdf

このシンプルなインストールにより、Web アプリケーションに対して強力な PDF 生成機能が即座に利用可能になります。

最初の PDF ドキュメントを作成する

基本を理解するために、簡単な PDF ドキュメントを作成しましょう。 次の例では、フォーマットされたコンテンツを使用して PDF を生成する方法を示しています。

using IronPdf;
// Create a new ChromePdfRenderer object
var renderer = new ChromePdfRenderer();
// Define HTML content with styling
var html = @"
    <html>
        <body style='font-family: Arial; margin: 40px;'>
            <h1>Hello World PDF Document</h1>
            <p>This is your first PDF file created with IronPDF!</p>
        </body>
    </html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF document
pdf.SaveAs("output.pdf");
using IronPdf;
// Create a new ChromePdfRenderer object
var renderer = new ChromePdfRenderer();
// Define HTML content with styling
var html = @"
    <html>
        <body style='font-family: Arial; margin: 40px;'>
            <h1>Hello World PDF Document</h1>
            <p>This is your first PDF file created with IronPDF!</p>
        </body>
    </html>";
// Generate PDF from HTML
var pdf = renderer.RenderHtmlAsPdf(html);
// Save the PDF document
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードは、HTML コンテンツをレンダリングして新しい PDF を作成する PdfDocument オブジェクトを作成します。 ChromePdfRenderer は変換を処理して、PDF ドキュメントが一貫したフォーマットを維持するようにします。

出力

高度な機能を備えた HTML から PDF への変換

IronPDF は、複雑な Web ページや HTML コンテンツをプロフェッショナルな PDF ファイルに変換することに優れています。 次のコードでは、テーブル、画像、スタイル付き要素などの高度な機能を備えた新しい PDF ドキュメントを作成する方法を説明しています。

public void CreateAdvancedPdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    var html = @"
        <html>
        <head>
            <style>
                table { width: 100%; border-collapse: collapse; }
                th, td { padding: 10px; border: 1px solid #ddd; }
                th { background-color: #f2f2f2; }
            </style>
        </head>
        <body>
            <h2>Sales Report</h2>
            <table>
                <tr>
                    <th>Product</th>
                    <th>Quantity</th>
                    <th>Total</th>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td>10</td>
                    <td>$500</td>
               </tr>
            </table>
        </body>
        </html>";
    // Create PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("report.pdf");
}
public void CreateAdvancedPdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    var html = @"
        <html>
        <head>
            <style>
                table { width: 100%; border-collapse: collapse; }
                th, td { padding: 10px; border: 1px solid #ddd; }
                th { background-color: #f2f2f2; }
            </style>
        </head>
        <body>
            <h2>Sales Report</h2>
            <table>
                <tr>
                    <th>Product</th>
                    <th>Quantity</th>
                    <th>Total</th>
                </tr>
                <tr>
                    <td>Software License</td>
                    <td>10</td>
                    <td>$500</td>
               </tr>
            </table>
        </body>
        </html>";
    // Create PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例は、IronPDF の複雑なレイアウトや CSS スタイリングの処理能力を示す、フォーマットされたテーブルを含む PDF ドキュメントの作成方法を示しています。

出力

.NET Core で PDF ファイルを作成する方法: 図 2 - 高度な機能を備えた PDF

ASP.NET Core アプリケーションでの作業

ASP.NET Core MVC ビューでの PDF 生成の統合はシンプルです。 コントローラーから PDF を生成するためのプロジェクトの実装例を次に示します。

using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.IO;
public class DocumentController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        // Create HTML content
        var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>";
        // Generate PDF
        var pdf = renderer.RenderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.BinaryData;
    // Return PDF file using the byte array, setting the content type to PDF
    return File(pdfBytes,
            "application/pdf",
            "document.pdf");
       }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.IO;
public class DocumentController : Controller
{
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        // Create HTML content
        var html = "<h1>Invoice</h1><p>Thank you for your purchase!</p>";
        // Generate PDF
        var pdf = renderer.RenderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.BinaryData;
    // Return PDF file using the byte array, setting the content type to PDF
    return File(pdfBytes,
            "application/pdf",
            "document.pdf");
       }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコントローラーメソッドは、PDF ドキュメントを生成し、ダウンロード可能なファイルとしてそれを返します。これは Web アプリケーションのサーバーサイド処理に最適です。 新しい MemoryStream オブジェクトを使用して、PDF ドキュメントの作成を処理することもできます。

出力

.NET Core で PDF ファイルを作成する方法: 図 3 - ASP.NET コントローラーで生成された PDF

高度な PDF 生成技術

IronPDF では、PDF を作成するための高度な機能が数多くサポートされています。 ヘッダー、フッター、ページ番号の追加や、複数の PDF ファイルをマージすることができます。

public void CreatePdfWithHeaderFooter()
{
    var renderer = new ChromePdfRenderer();
    // Add header
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Company Report",
        DrawDividerLine = true
    };
    // Add footer with page numbers
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        DrawDividerLine = true
    };
    var html = "<h1>Annual Report</h1><p>Content goes here...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Save the new document
    pdf.SaveAs("report-with-header.pdf");
}
// Merge multiple PDFs
public void MergePdfFiles()
{
    var renderer = new ChromePdfRenderer();
    var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>");
    var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>");
    // Merge PDF documents
    var merged = PdfDocument.Merge(pdf1, pdf2);
    merged.SaveAs("merged.pdf");
}
// Example of iterating over something, illustrating 'int i' and 'index'
public void ProcessMultipleFiles(string[] filePaths)
{
    for (int i = 0; i < filePaths.Length; i++)
    {
        // Use 'i' as an index to process each source file
        var source file = filePaths[i];
        Console.WriteLine($"Processing file at index {i}: {source file}");
        // Imagine code here to load or process the file
        // var pdf = PdfDocument.FromFile(sourceFile); // load
    }
}
public void CreatePdfWithHeaderFooter()
{
    var renderer = new ChromePdfRenderer();
    // Add header
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Company Report",
        DrawDividerLine = true
    };
    // Add footer with page numbers
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        DrawDividerLine = true
    };
    var html = "<h1>Annual Report</h1><p>Content goes here...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Save the new document
    pdf.SaveAs("report-with-header.pdf");
}
// Merge multiple PDFs
public void MergePdfFiles()
{
    var renderer = new ChromePdfRenderer();
    var pdf1 = renderer.RenderHtmlAsPdf("<p>First Document</p>");
    var pdf2 = renderer.RenderHtmlAsPdf("<p>Second Document</p>");
    // Merge PDF documents
    var merged = PdfDocument.Merge(pdf1, pdf2);
    merged.SaveAs("merged.pdf");
}
// Example of iterating over something, illustrating 'int i' and 'index'
public void ProcessMultipleFiles(string[] filePaths)
{
    for (int i = 0; i < filePaths.Length; i++)
    {
        // Use 'i' as an index to process each source file
        var source file = filePaths[i];
        Console.WriteLine($"Processing file at index {i}: {source file}");
        // Imagine code here to load or process the file
        // var pdf = PdfDocument.FromFile(sourceFile); // load
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらの例は、PDF ドキュメントにプロフェッショナルなタッチを加えたり、複数のファイルを単一のドキュメントに結合したりする方法を示しています。

.NET Core で PDF ファイルを作成する方法: 図 4 - シンプルなカスタム ヘッダーとフッターで作成された PDF

フォームと動的コンテンツを使用する

IronPDF はフォームフィールドを備えたインタラクティブな PDF ドキュメントを作成できます。

public void CreatePdfWithForm()
{
    var html = @"
    <!DOCTYPE html>
    <html>
    <head>
        <title>PDF Test Form</title>
        <style>
            body {
                font-family: Arial, sans-serif;
                margin: 20px;
                background-color: #f4f4f4;
            }
            .form-container {
                width: 400px;
                padding: 20px;
                border: 1px solid #ccc;
                border-radius: 8px;
                background-color: #fff;
                box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
            }
            .form-group {
                margin-bottom: 15px;
            }
            label {
                display: block; /* Make label take up full width */
                margin-bottom: 5px;
                font-weight: bold;
                color: #333;
            }
            input[type='text'], textarea {
                width: 100%;
                padding: 10px;
                border: 1px solid #ddd;
                border-radius: 4px;
                box-sizing: border-box; /* Include padding and border in the element's total width and height */
            }
            textarea {
                height: 100px;
                resize: vertical;
            }
            .checkbox-group {
                display: flex;
                align-items: center;
            }
            .checkbox-group label {
                display: inline;
                font-weight: normal;
                margin-left: 8px;
            }
        </style>
    </head>
    <body>
        <div class='form-container'>
            <h2>Document Generation Test Form</h2>
            <form>
                <div class='form-group'>
                    <label for='fullName'>Full Name:</label>
                </div>
                <div class='form-group'>
                    <label for='comments'>Comments/Feedback:</label>
                    <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea>
                </div>
                <div class='form-group checkbox-group'>
                    <label for='agree'>I agree to the terms and conditions.</label>
                </div>
                <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'>
                    Test Button Rendering
                </button>
            </form>
        </div>
    </body>
    </html>";
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("form.pdf");
}
public void CreatePdfWithForm()
{
    var html = @"
    <!DOCTYPE html>
    <html>
    <head>
        <title>PDF Test Form</title>
        <style>
            body {
                font-family: Arial, sans-serif;
                margin: 20px;
                background-color: #f4f4f4;
            }
            .form-container {
                width: 400px;
                padding: 20px;
                border: 1px solid #ccc;
                border-radius: 8px;
                background-color: #fff;
                box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
            }
            .form-group {
                margin-bottom: 15px;
            }
            label {
                display: block; /* Make label take up full width */
                margin-bottom: 5px;
                font-weight: bold;
                color: #333;
            }
            input[type='text'], textarea {
                width: 100%;
                padding: 10px;
                border: 1px solid #ddd;
                border-radius: 4px;
                box-sizing: border-box; /* Include padding and border in the element's total width and height */
            }
            textarea {
                height: 100px;
                resize: vertical;
            }
            .checkbox-group {
                display: flex;
                align-items: center;
            }
            .checkbox-group label {
                display: inline;
                font-weight: normal;
                margin-left: 8px;
            }
        </style>
    </head>
    <body>
        <div class='form-container'>
            <h2>Document Generation Test Form</h2>
            <form>
                <div class='form-group'>
                    <label for='fullName'>Full Name:</label>
                </div>
                <div class='form-group'>
                    <label for='comments'>Comments/Feedback:</label>
                    <textarea id='comments' name='comments' placeholder='Type your feedback here...'></textarea>
                </div>
                <div class='form-group checkbox-group'>
                    <label for='agree'>I agree to the terms and conditions.</label>
                </div>
                <button style='padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;'>
                    Test Button Rendering
                </button>
            </form>
        </div>
    </body>
    </html>";
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("form.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これにより、ユーザーが入力できるフォームフィールドを備えたインタラクティブな PDF が作成され、ユーザー入力が必要なアプリケーションには最適です。 コードは、生成されたコンテンツ内で HTML リンクが使用される可能性がある場所も示しています。

出力 PDF with Editable Form

.NET Core で PDF ファイルを作成する方法: 図 5 - フィールド入力可能なフォームを備えた PDF

ベスト プラクティスとエラー処理

本番環境で PDF ファイルを生成する際は、適切なエラー処理を実装してください。

try
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    // Log error and handle appropriately
    Console.WriteLine($"PDF generation failed: {ex.Message}");
}
try
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("output.pdf");
}
catch (Exception ex)
{
    // Log error and handle appropriately
    Console.WriteLine($"PDF generation failed: {ex.Message}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

常に入力データを検証し、例外を適切に処理して、アプリケーションでの信頼性の高い PDF 生成を保証してください。

結論

IronPDF は、.NET Core での PDF ファイルの作成という複雑なタスクを単純で管理しやすいプロセスに変換します。 基本的なドキュメント作成から、フォーム、画像、ページ管理などの高度な機能まで、この .NET ライブラリはプログラムで PDF ドキュメントを生成するための包括的なツールを提供します。 共通のアプローチとして HTML を変換することで、データをすばやくロードして、完成したファイルをダウンロードできます。

シンプルなレポートから複雑な多ページ ドキュメントまで、IronPDF の直感的な API と強力なレンダリング エンジンは、.NET 開発者にとって理想的な選択肢です。 IronPDF の無料試用版を使用して、ASP.NET Core アプリケーションでプロフェッショナルな PDF ファイルの作成を今すぐ開始しましょう。

PDF 生成機能を備えてアプリケーションを強化する準備はできましたか? IronPDF を使い始めて、PDF 作成の容易さを体験しましょう。

よくある質問

IronPDFとは?

IronPDFは、ASP.NETアプリケーションでPDFドキュメントの作成と操作を簡素化するために設計された強力な.NET Coreライブラリです。

.NET CoreでPDFドキュメントを作成するにはどうすればよいですか?

IronPDFライブラリを使用することで、.NET Coreでアプリケーション内でプログラムによってPDFを生成するための簡単な方法を提供します。

IronPDFを使用してどのような種類のドキュメントを作成できますか?

IronPDFを使用すると、請求書、レポート、その他のPDF生成を必要とするドキュメントベースのシステムを含む幅広い種類のドキュメントを作成できます。

IronPDFはASP.NETアプリケーションに適していますか?

はい、IronPDFはASP.NETアプリケーションに特に適しており、シームレスな統合と効率的なPDF作成機能を提供します。

IronPDFの公式ドキュメントはどこで見つけられますか?

IronPDFの公式ドキュメントは、Iron Softwareのウェブサイトで入手可能で、ライブラリの使用に関する包括的な技術情報とガイドを提供します。

IronPDFを使用したPDF作成の利点は何ですか?

IronPDFを使用する利点には、使いやすさ、堅牢な機能、そして.NET Coreアプリケーション内でプログラムにより高品質なPDFを生成する能力が含まれます。

IronPDFは複雑なPDF生成タスクを処理できますか?

はい、IronPDFは複雑なPDF生成タスクを処理する能力があり、高度なPDF操作と作成を必要とするアプリケーションにも理想的です。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。