跳過到頁腳內容
使用IRONPDF

使用 IronPDF 在 .NET Core 中建立 PDF 文件

以程式設計方式建立 PDF 文件是現代 Web 應用程式中的常見方法和常見需求。 無論您是建立發票、報告還是任何基於文件的系統,了解如何在 ASP 應用程式和 .NET Core 中有效地建立 PDF 文件至關重要。 在本教學中,我們將探討使用 IronPDF 處理 .NET Core 建立 PDF 檔案任務的最佳方法。 這是一個功能強大的 .NET Core 程式庫,可簡化 PDF 產生功能。 有關詳細技術細節,請參閱官方文件。

開始使用 IronPdf

IronPDF是一個全面的 .NET Core PDF 庫,它將複雜的 PDF 創建過程轉化為簡單的操作。 與需要手動繪製元素的傳統方法不同,IronPDF 利用 HTML 標籤和 CSS 來產生符合您確切設計要求的 PDF 檔案。

若要在 .NET Core 程式庫專案中開始建立 PDF,請使用 Visual Studio 的套件管理器控制台安裝 IronPDF NuGet 程式包,方法是執行下列命令:

Install-Package IronPDF
Install-Package IronPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
$vbLabelText   $csharpLabel

簡單的安裝即可讓您的 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

這段程式碼會建立一個新的 PdfDocument 對象,該對象會透過渲染 HTML 內容來建立一個新的 PDF 檔案。 ChromePdfRenderer 負責處理轉換,確保您的 PDF 文件保持一致的格式。

輸出

! .NET Core 使用 IronPDF 建立 PDF 檔案:圖 1 - 使用 IronPDF 建立的第一個簡單 PDF

使用進階功能將 HTML 轉換為 PDF

IronPDF 擅長將複雜的網頁和 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

本範例展示如何建立具有格式化表格的 PDF 文檔,證明了 IronPDF 處理複雜佈局和 CSS 樣式的能力。

輸出

使用 IronPDF 在 .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 文件的建立。

輸出

使用 IronPDF 在 .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 文件添加專業潤色,以及如何將多個文件合併到一個文件中。

帶有自訂頁首和頁尾的輸出

使用 IronPDF .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 文件

使用 IronPDF 在 .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 在 ASP.NET 應用程式中的主要功能是什麼?

IronPDF 讓開發人員在 ASP.NET 應用程式中輕鬆建立 PDF 文檔,從而簡化產生發票、報告和其他基於文檔的系統等任務。

在現代 Web 應用程式中,以程式設計方式建立 PDF 文件為何如此重要?

以程式設計方式建立 PDF 文件至關重要,因為它能夠為需要文件管理的應用程式(例如計費系統和資料報告)實現自動化和動態內容產生。

我可以在 .NET Core 環境中使用 IronPDF 產生 PDF 檔案嗎?

是的,IronPDF 是一個功能強大的 .NET Core 庫,專門用於簡化 PDF 生成,是 .NET Core 應用程式中創建 PDF 文件的理想選擇。

在 .NET Core 中使用 IronPDF 可以建立哪些類型的文件?

使用 IronPDF,您可以建立各種文檔,包括發票、報告以及任何需要有效產生 PDF 的基於文檔的系統。

哪裡可以找到更多關於使用 IronPDF 的技術細節?

有關使用 IronPDF 的全面技術細節,請參閱官方文檔,其中提供了逐步指導和實用技巧。

IronPDF 如何增強 ASP.NET 應用程式中的 PDF 產生功能?

IronPDF 透過提供一個強大的程式庫來增強 PDF 生成功能,該程式庫簡化了在 ASP.NET 應用程式中直接建立、操作和管理 PDF 文件的過程。

IronPDF 是否適合在 .NET Core 中建立基於文件的系統?

是的,IronPDF 非常適合在 .NET Core 中建立基於文件的系統,因為它提供了以程式設計方式產生和管理 PDF 的無縫方法。

在 .NET Core 中使用 IronPDF 建立 PDF 的最佳方法是什麼?

本教學探討了處理 PDF 建立的各種方法,重點介紹如何利用 IronPDF 的功能在 .NET Core 環境中有效地產生和管理 PDF 文件。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。