跳過到頁腳內容
使用IRONPDF

如何在ASP.NET中使用C#和IronPDF查看PDF文件

大多數人使用專用桌面應用程式在電腦上打開PDF,但軟體工程師也可以使用IronPDF以C#程式方式創建、查看、打開、閱讀和編輯PDF內容。

IronPDF在ASP.NET和C#中讀取PDF文件時成為非常有用的插件。

您可以下載ASP.NET PDF展示專案

可以使用C#與IronPDF快速輕鬆地創建PDF文件。

PDF文件的設計和佈局大部分可以通過使用現有的HTML資產來完成,或者將任務委託給網頁設計員工; 它負責將PDF生成整合到您的應用程式中,並自動將準備好的文件轉換為PDF。 使用.NET,您可以:

  • 將網絡表單,本地HTML頁面和其他網站轉換為PDF格式。
  • 允許用戶下載文件,通過電子郵件分享給其他人,或將其儲存在雲端。
  • 開具客戶發票並提供報價; 準備報告; 洽談合同和其他文書工作。
  • 使用ASP.NET,ASP.NET Core,Web Forms,MVC,Web APIs在.NET Framework和.NET Core上,以及其他程式語言。

設定IronPDF程式庫

有兩種方法可以安裝該程式庫;

使用NuGet程序包管理器安裝

IronPDF可以通過Visual Studio外掛或從命令列中的NuGet程序包管理器安裝。導航到控制台,在Visual Studio中輸入以下命令:

Install-Package IronPdf

從網站直接下載DLL文件

您也可以直接從網站獲取DLL。

請記得在使用IronPDF的任何cs類文件頂部加入以下指令:

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

查看IronPDF詳細功能概述

IronPDF是必備的插件。 立即獲取並嘗試IronPDF NuGet包

Create a PDF File From an HTML String in .NET C#

從C#中的HTML字串創建PDF文件是一種高效且有成效的方法在C#中創建新PDF文件。

ChromePdfRenderer提供了輕鬆的方式將任何HTML(HTML5)字串轉換為PDF文檔,這要歸功於IronPDF DLL中嵌入的Google Chromium引擎版本。

// Create a renderer to convert HTML to PDF
var renderer = new ChromePdfRenderer();

// Convert an HTML string to a PDF
using var renderedPdf = renderer.RenderHtmlAsPdf("<h1>My First HTML to Pdf</h1>");

// Define the output path for the PDF
var outputPath = "My_First_Html.pdf";

// Save the rendered PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Automatically open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
// Create a renderer to convert HTML to PDF
var renderer = new ChromePdfRenderer();

// Convert an HTML string to a PDF
using var renderedPdf = renderer.RenderHtmlAsPdf("<h1>My First HTML to Pdf</h1>");

// Define the output path for the PDF
var outputPath = "My_First_Html.pdf";

// Save the rendered PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Automatically open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
$vbLabelText   $csharpLabel

RenderHtmlAsPdf是支持CSS,JavaScript和圖片的強大工具。 如果這些材料儲存在硬碟上,則可能需要設置RenderHtmlAsPdf的第二個參數。

以下代碼將生成PDF文件:

// Render HTML to PDF with a base path for local assets
var renderPdf = renderer.RenderHtmlAsPdf("<img src='image_1.png'/>", @"C:\Newproject");
// Render HTML to PDF with a base path for local assets
var renderPdf = renderer.RenderHtmlAsPdf("<img src='image_1.png'/>", @"C:\Newproject");
$vbLabelText   $csharpLabel

所有引用的CSS樣式表,圖片和JavaScript文件將相對於BaseUrlPath,以便維護更有組織和邏輯的結構。 當然,您也可以使用來自互聯網的圖片、樣式表和資產,例如Web字體,Google字體,甚至jQuery。

使用現有HTML URL創建PDF文件

使用C#可以高效地將現有的URL渲染成PDF; 這也使團隊能夠將PDF設計和後端PDF渲染工作分配到不同部分,這是有益的。

以下代碼示範如何從URL渲染endeavorcreative.com頁面:

// Create a renderer for converting URLs to PDF
var renderer = new ChromePdfRenderer();

// Convert the specified URL to a PDF
using var renderedPdf = renderer.RenderUrlAsPdf("https://endeavorcreative.com/setting-up-wordpress-website-from-scratch/");

// Specify the output path for the PDF
var outputPath = "Url_pdf.pdf";

// Save the PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
// Create a renderer for converting URLs to PDF
var renderer = new ChromePdfRenderer();

// Convert the specified URL to a PDF
using var renderedPdf = renderer.RenderUrlAsPdf("https://endeavorcreative.com/setting-up-wordpress-website-from-scratch/");

// Specify the output path for the PDF
var outputPath = "Url_pdf.pdf";

// Save the PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
$vbLabelText   $csharpLabel

因此,所有超連結(HTML鏈接)甚至HTML表單在生成的PDF中都會被保留。

從現有HTML文檔創建PDF文件

本部分顯示如何渲染任何本地HTML文件。它將顯示為文件已使用file:/協議打開,這樣對所有相對資產,如CSS,圖片和JavaScript等。

// Create a renderer for existing HTML files
var renderer = new ChromePdfRenderer();

// Render an HTML file to PDF
using var renderedPdf = renderer.RenderHtmlFileAsPdf("Assets/test1.html");

// Specify the output path for the PDF
var outputPath = "test1_pdf.pdf";

// Save the PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
// Create a renderer for existing HTML files
var renderer = new ChromePdfRenderer();

// Render an HTML file to PDF
using var renderedPdf = renderer.RenderHtmlFileAsPdf("Assets/test1.html");

// Specify the output path for the PDF
var outputPath = "test1_pdf.pdf";

// Save the PDF to the specified path
renderedPdf.SaveAs(outputPath);

// Open the newly created PDF
System.Diagnostics.Process.Start(outputPath);
$vbLabelText   $csharpLabel

該策略的優勢在於,它允許開發人員在創建HTML內容時在瀏覽器中進行測試。 IronPDF的渲染引擎是基於Chrome web瀏覽器。 因此,建議使用XML轉換為PDF,因為可以使用XSLT模板將XML內容列印為PDF。

將ASP.NET Web Forms轉換為PDF文件

只需一行代碼,您就能將ASP.NET網上表單轉換為PDF格式而不是HTML。 將代碼行放置到頁面後端代碼文件的Page_Load方法中,以使其出現在頁面上。

ASP.NET Web Forms應用可以從頭開始創建,也可以從以前的版本打開。

若未安裝,則安裝NuGet程序包。

應使用IronPdf命名空間。

導航到您想要轉換為PDF的頁面後端代碼。 例如,使用ASP.NET的文件Default.aspx.cs

AspxToPdf類上的一個方法。

using IronPdf;
using System;
using System.Web.UI;

namespace WebApplication7
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Render the current page as a PDF in the browser
            AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
using IronPdf;
using System;
using System.Web.UI;

namespace WebApplication7
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Render the current page as a PDF in the browser
            AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
$vbLabelText   $csharpLabel

這需要安裝IronPdf.Extensions.ASPX NuGet包。 在.NET Core中不可用,因為ASPX已被MVC模型取代。

應用HTML模板化

對於內部網和網站開發人員,能夠模板或"批次生成" PDF是一種標準需求。

而不是為PDF文件創建模板,IronPDF程式庫提供了一種通過利用現有的、經過充分測試的技術生成HTML模板的方法。

當HTML模板用查詢字串或資料庫中的數據補充時,將會生成一個動態生成的PDF文件,如下所示。

例如,考慮C# String類及其屬性。 Format方法適用於基本的"郵件合併"操作。

// Basic HTML String Formatting
string formattedString = String.Format("<h1>Hello {0}!</h1>", "World");
// Basic HTML String Formatting
string formattedString = String.Format("<h1>Hello {0}!</h1>", "World");
$vbLabelText   $csharpLabel

由於HTML文件可能相當廣泛,通常使用任意佔位符,如[[NAME]],然後將其替換為實際數據。

以下示例將生成三個PDF文檔,每個將針對不同的用戶定制。

// Define an HTML template with a placeholder
var htmlTemplate = "<p>[[NAME]]</p>";

// Sample data to replace placeholders
var names = new[] { "John", "James", "Jenny" };

// Create a new PDF for each name
foreach (var name in names)
{
    // Replace placeholder with actual name
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    // Create a renderer and render the HTML as PDF
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    // Save the PDF with the name in the filename
    pdf.SaveAs($"{name}.pdf");
}
// Define an HTML template with a placeholder
var htmlTemplate = "<p>[[NAME]]</p>";

// Sample data to replace placeholders
var names = new[] { "John", "James", "Jenny" };

// Create a new PDF for each name
foreach (var name in names)
{
    // Replace placeholder with actual name
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    // Create a renderer and render the HTML as PDF
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    // Save the PDF with the name in the filename
    pdf.SaveAs($"{name}.pdf");
}
$vbLabelText   $csharpLabel

ASP.NET MVC路由:下載此頁面的PDF版本

使用ASP.NET MVC框架,您可以將用戶引導到PDF文件。

在構建新的ASP.NET MVC應用程序或將現有MVC控制器添加到現有應用程式時,選擇此選項。 通過從下拉菜單中選擇ASP.NET Web應用程式(.NET Framework)> MVC來啟動Visual Studio新專案向導。 或者,您可以打開現有的MVC專案。 替換Controllers文件夾中HomeController文件中的Index方法,或在Controllers文件夾中創建新的控制器。

以下是代碼應如何編寫的示例:

using IronPdf;
using System;
using System.Web.Mvc;

namespace WebApplication8.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            // Render a URL as PDF and return it in the response
            using var pdf = HtmlToPdf.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
            return File(pdf.BinaryData, "application/pdf", "Wiki.Pdf");
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
using IronPdf;
using System;
using System.Web.Mvc;

namespace WebApplication8.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            // Render a URL as PDF and return it in the response
            using var pdf = HtmlToPdf.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
            return File(pdf.BinaryData, "application/pdf", "Wiki.Pdf");
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
$vbLabelText   $csharpLabel

為PDF文檔添加封面頁

如何使用C#和IronPDF在ASP.NET中查看PDF文件,圖1:為PDF文件添加封面頁 為PDF文檔添加封面頁

IronPDF簡化了合併PDF文檔的過程。 這種技術最常見的應用是為已渲染的PDF文檔添加封面頁或後頁。

為實現此目標,準備封面頁,然後使用PdfDocument能力。

要合併兩個文檔,使用Merge PDF Documents Method

// Create a renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Merge the cover page with the rendered PDF
using var merged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf);

// Save the merged document
merged.SaveAs("Combined.Pdf");
// Create a renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Merge the cover page with the rendered PDF
using var merged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf);

// Save the merged document
merged.SaveAs("Combined.Pdf");
$vbLabelText   $csharpLabel

在您的文件中添加浮水印

最終,使用C#代碼可以完成為PDF文件添加浮水印的工作; 這可以用於在文檔的每個頁面添加一個聲明,說明它是"機密"或"範例"。

// Prepare a stamper with HTML content for the watermark
HtmlStamper stamper = new HtmlStamper("<h2 style='color:red'>SAMPLE</h2>")
{
    HorizontalOffset = new Length(-3, MeasurementUnit.Inch),
    VerticalAlignment = VerticalAlignment.Bottom
};

// Create a renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Apply the watermark to the PDF
pdf.ApplyStamp(stamper);

// Save the watermarked PDF
pdf.SaveAs(@"C:\PathToWatermarked.pdf");
// Prepare a stamper with HTML content for the watermark
HtmlStamper stamper = new HtmlStamper("<h2 style='color:red'>SAMPLE</h2>")
{
    HorizontalOffset = new Length(-3, MeasurementUnit.Inch),
    VerticalAlignment = VerticalAlignment.Bottom
};

// Create a renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Apply the watermark to the PDF
pdf.ApplyStamp(stamper);

// Save the watermarked PDF
pdf.SaveAs(@"C:\PathToWatermarked.pdf");
$vbLabelText   $csharpLabel

您的PDF文件可以使用密碼保護

當您設定PDF文檔的密碼屬性時,它將被加密,使用者將需要提供正確的密碼才能閱讀該文檔。 此示例可以在.NET Core控制檯應用程式中使用。

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a renderer and render a PDF from HTML
            var renderer = new ChromePdfRenderer();
            using var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

            // Set password to protect the PDF
            pdfDocument.Password = "strong!@#pass&^%word";

            // Save the secured PDF
            pdfDocument.SaveAs("secured.pdf");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a renderer and render a PDF from HTML
            var renderer = new ChromePdfRenderer();
            using var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

            // Set password to protect the PDF
            pdfDocument.Password = "strong!@#pass&^%word";

            // Save the secured PDF
            pdfDocument.SaveAs("secured.pdf");
        }
    }
}
$vbLabelText   $csharpLabel

除上述優勢外,使用IronPDF,您還可以:

創建PDF是一項富有挑戰性的任務; 有些人可能從未遇到過他們應該運用以創造最優秀文檔的基本概念。 因此,IronPDF非常有用,因為它簡化了創建PDF的過程,從而改善了從PDF和HTML創建的文檔的原始呈現。

基於文檔中的提供資訊和競爭者分析:IronPDF是創建PDF時最有效的工具,使包括辦公室或學校工作的人員能夠以高效方式完成他們的工作。

如何使用C#和IronPDF在ASP.NET中查看PDF文件,圖2:如何使用C#和IronPDF在ASP.NET中查看PDF文件 如何在ASP.NET中使用C#和IronPDF查看PDF文件

IronPDF是一個必備的.NET程式庫。 立即獲取並嘗試IronPDF NuGet包

常見問題解答

如何在 ASP.NET 應用程序中使用 C# 查看 PDF 文件?

您可以使用 IronPDF 在 ASP.NET 應用程序中查看 PDF 文件,方法是將 PDF 渲染為可以嵌入網頁的圖像或 HTML 元素。

將 HTML 頁面轉換為 PDF 在 ASP.NET 中需要哪些步驟?

要在ASP.NET中將HTML頁面轉換為PDF,您可以使用IronPDF的RenderHtmlAsPdf方法,該方法支持CSS和JavaScript以進行準確的渲染。

如何在 C# 中合併多個 PDF 文件?

IronPDF允許您使用PdfDocument.Merge方法合併多個PDF文檔,將不同的PDF文件合併為一個文檔。

是否可以在 ASP.NET 中向 PDF 文檔添加水印?

是的,您可以使用IronPDF在ASP.NET中向PDF文檔添加水印,方法是使用HtmlStamper類來覆蓋自定義HTML內容。

如何在 C# 中實現 PDF 文件的密碼保護?

您可以使用IronPDF在PDF文件上實施密碼保護,通過在PdfDocument上設置Password屬性來加密文件。

IronPDF 可以用於將 ASP.NET Web Forms 轉換為 PDF 嗎?

是的,IronPDF可以通過使用RenderThisPageAsPdf等方法將ASP.NET Web表單轉換為PDF,捕獲整個Web表單作為PDF文檔。

IronPDF 為 PDF 生成在 ASP.NET 中提供了哪些優勢?

IronPDF 提供的優勢包括使用內置的 Google Chromium 引擎準確渲染 HTML、CSS 和 JavaScript,使其成為在 ASP.NET 中生成 PDF 的靈活工具。

如何在我的 ASP.NET 專案中安裝 IronPDF?

您可以通過 NuGet 程式包管理器或直接從 IronPDF 網站下載 DLL 文件,在您的 ASP.NET 專案中安裝 IronPDF。

是什麼使 IronPDF 成為軟體開發人員的寶貴資產?

IronPDF 是軟件開發人員的寶貴資產,因為它簡化了複雜的 PDF 生成任務,並無縫集成到 ASP.NET 應用程序中,以提高 PDF 處理效率。

如何使用 IronPDF 從 C# 中的 URL 創建 PDF?

您可以使用IronPDF的RenderUrlAsPdf方法從URL創建PDF,該方法從URL獲取內容並將其轉換為PDF文檔。

.NET 10支持:IronPDF是否兼容.NET 10並能在ASP.NET中查看PDF文件?

是的—IronPDF完全支持.NET 10,包括使用ASP.NET或ASP.NET Core的網路應用。它可在.NET 10專案中無縫工作,無需特殊配置。您仍然可以使用熟悉的方法,如RenderUrlAsPdf或返回帶MIME類型application/pdfFileStreamResult,就像在早期的.NET版本中一樣。IronPDF被設計為跨平台,並且.NET 10被明確列在支持的框架中。[ironpdf.com](https://ironpdf.com/?utm_source=openai)

Curtis Chau
技術作家

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

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me