跳過到頁腳內容
USING IRONPDF

How to Display, Save, and Print PDFs in an ASP.NET Core Viewer

如何在 ASP.NET Core 檢視器中顯示、儲存和列印 PDF 文件

IronPDF 透過在伺服器端產生 PDF 並利用瀏覽器內建的 PDF 檢視器,實現了 ASP.NET Core 應用程式中的無縫 PDF 檢視,無需插件,同時支援在 Docker 容器和雲端環境中進行跨平台部署。

在網頁瀏覽器中直接顯示 PDF 文件已成為現代 ASP.NET Core Web 應用程式的基本要求。 無論你是產生發票、報告還是合同,用戶都希望能夠無縫查看 PDF 文件,而無需下載文件或安裝 Adobe Acrobat Reader。 本教學示範了IronPDF如何透過其強大的基於 Chrome 的渲染引擎,簡化 ASP.NET Core 檢視器中的 PDF 顯示、儲存和列印操作。

瀏覽器在 ASP.NET Core 中如何處理 PDF 檢視?

現代瀏覽器內建了 PDF 檢視器,當收到 MIME 類型正確的 PDF 檔案( application/pdf )時,這些檢視器會自動啟動。 當您的 ASP.NET Core 應用程式傳回具有適當頁首的 PDF 文件時,瀏覽器會自動將其內嵌顯示。這無需外部插件、Adobe Acrobat Reader 或複雜的 JavaScript 程式庫。 根據 MDN Web Docs 的說法,正確的標頭配置對於控制瀏覽器如何處理文件下載和顯示至關重要。

IronPDF 利用瀏覽器的這項功能,透過其ChromePdfRenderer類別在伺服器端產生高品質的 PDF。 此渲染器底層使用完整的 Chrome 引擎,確保您的文件能夠完全按照預期顯示,並完全支援現代CSSJavaScript數位簽章Web 字體。 與簡單的文件檢視器不同,IronPDF 提供了對PDF 處理和渲染的完全控制。

在 ASP.NET Core 中顯示/檢視 PDF 檔案需要哪些工具?

在 ASP.NET Core 專案中設定 IronPDF 只需幾個步驟。 首先,在 Visual Studio 中或透過命令列建立一個新專案。開啟 Visual Studio 並選擇 ASP.NET Core Web 應用程式專案範本:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
SHELL

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

透過 NuGet 套件管理器在專案中安裝 IronPDF:

Install-Package IronPdf

或者,在解決方案資源管理器中,請右鍵單擊您的項目,然後選擇"管理 NuGet 套件"。選擇對應的程式包來源,然後搜尋 IronPDF。

這就是全部的準備工作了。 IronPDF 可與 ASP.NET Core 3.1 及更高版本(長期支援版本)無縫協作,包括 .NET 6、7 和 8。該庫會頻繁更新,以確保與最新框架相容。 有關詳細的安裝說明,請造訪IronPDF 安裝指南。 該軟體包包含生成編輯和處理 PDF 文件所需的所有組件。 對於Docker 部署,IronPDF 提供最佳化的容器映像,最大限度地降低部署複雜性——這對於管理容器化環境的DevOps工程師來說至關重要。

如何使用 ASP.NET Core 在瀏覽器中顯示 PDF 檔案?

在瀏覽器中建立和顯示 PDF 檔案只需要幾行程式碼。 以下是一個完整的控制器操作,它可以根據 HTML 產生 PDF 並將其內嵌顯示:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options for the PDF viewer
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        // Generate PDF from HTML string
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; width: 100%; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF for inline viewing in the browser
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options for the PDF viewer
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        // Generate PDF from HTML string
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; width: 100%; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF for inline viewing in the browser
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        Dim renderer = New ChromePdfRenderer()
        ' Configure rendering options for the PDF viewer
        renderer.RenderingOptions.PrintHtmlBackgrounds = True
        renderer.RenderingOptions.CreatePdfFormsFromHtml = True
        renderer.RenderingOptions.EnableJavaScript = True
        ' Generate PDF from HTML string
        Dim html = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; width: 100%; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " & DateTime.Now.ToString("yyyy-MM-dd") & "</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        ' Return PDF for inline viewing in the browser
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

該程式碼建立了一個ChromePdfRenderer實例,並將其配置為包含背景顏色並將HTML 表單轉換為 PDF 表單RenderHtmlAsPdf方法將 HTML 字串轉換為 PDF。 傳回application/pdf MIME 類型的 PDF 檔案會告訴瀏覽器直接顯示該文件,而不是下載它。 這種伺服器端方法可確保在所有瀏覽器和平台上呈現一致的效果—這對於在Azure 部署AWS Lambda 環境中保持可靠性至關重要。

輸出

! PDF 檢視器介面顯示了一個簡單的發票文檔,發票編號為 12345,日期為 2025 年 10 月 30 日。 ASP.NET Core PDF 檢視器成功顯示了渲染後的發票文檔,工具列中帶有頁面導航控制項和縮放選項。

對於現有的 HTML 檔案或 Razor 頁面,您可以使用其他渲染方法:

// Render from URL - useful for complex pages
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_58___");
// Render from HTML file in the same location
var pdf = renderer.RenderHtmlFileAsPdf("Views/Invoice.html");
// Render from wwwroot folder
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report.html");
// For containerized applications, use environment-specific paths
var basePath = Environment.GetEnvironmentVariable("APP_BASE_PATH") ?? "wwwroot";
var pdf = renderer.RenderHtmlFileAsPdf($"{basePath}/templates/report.html");
// Render from URL - useful for complex pages
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_58___");
// Render from HTML file in the same location
var pdf = renderer.RenderHtmlFileAsPdf("Views/Invoice.html");
// Render from wwwroot folder
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report.html");
// For containerized applications, use environment-specific paths
var basePath = Environment.GetEnvironmentVariable("APP_BASE_PATH") ?? "wwwroot";
var pdf = renderer.RenderHtmlFileAsPdf($"{basePath}/templates/report.html");
' Render from URL - useful for complex pages
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_58___")
' Render from HTML file in the same location
pdf = renderer.RenderHtmlFileAsPdf("Views/Invoice.html")
' Render from wwwroot folder
pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report.html")
' For containerized applications, use environment-specific paths
Dim basePath = If(Environment.GetEnvironmentVariable("APP_BASE_PATH"), "wwwroot")
pdf = renderer.RenderHtmlFileAsPdf($"{basePath}/templates/report.html")
$vbLabelText   $csharpLabel

這些方法讓您可以靈活地取得 HTML 內容,同時保持高品質的 PDF 輸出。 您也可以使用 IronPDF 的全面功能載入現有的 PDF 文件編輯 PDF以及處理Word (DOCX 文件)和 Excel 格式的文件。 請參閱文檔,以了解更多關於HTML轉PDF轉換選項的資訊。 有關進階處理和編輯功能,請查看API 參考文件

對於管理微服務架構的DevOps工程師而言,IronPDF 的原生引擎與遠端引擎架構提供了部署彈性。 遠端引擎選項可讓您將 PDF 渲染分離到專用服務中,從而提高資源利用率並實現橫向擴展。

使用者如何透過瀏覽器儲存PDF文件?

若要使用戶能夠下載 PDF 而不是線上查看,請修改Content-Disposition標頭。 對於需要用戶離線存取的應用程式來說,此功能至關重要:

public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    // Create PDF with CSS styling and images
    var html = @"<h1>Download Me</h1>
                 <img src='logo.png' width='100' />";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");
    // Force download with custom filename
    return File(pdf.BinaryData, "application/pdf", "invoice-2024.pdf");
}

// Health check endpoint for container orchestration
[HttpGet("/health/pdf-generator")]
public IActionResult HealthCheck()
{
    try
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<p>Health Check</p>");
        return Ok(new { status = "healthy", timestamp = DateTime.UtcNow });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { status = "unhealthy", error = ex.Message });
    }
}
public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    // Create PDF with CSS styling and images
    var html = @"<h1>Download Me</h1>
                 <img src='logo.png' width='100' />";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");
    // Force download with custom filename
    return File(pdf.BinaryData, "application/pdf", "invoice-2024.pdf");
}

// Health check endpoint for container orchestration
[HttpGet("/health/pdf-generator")]
public IActionResult HealthCheck()
{
    try
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<p>Health Check</p>");
        return Ok(new { status = "healthy", timestamp = DateTime.UtcNow });
    }
    catch (Exception ex)
    {
        return StatusCode(503, new { status = "unhealthy", error = ex.Message });
    }
}
Public Function DownloadPdf() As IActionResult
    Dim renderer = New ChromePdfRenderer()
    ' Create PDF with CSS styling and images
    Dim html = "<h1>Download Me</h1>
                <img src='logo.png' width='100' />"
    Dim pdf = renderer.RenderHtmlAsPdf(html, "wwwroot/images")
    ' Force download with custom filename
    Return File(pdf.BinaryData, "application/pdf", "invoice-2024.pdf")
End Function

' Health check endpoint for container orchestration
<HttpGet("/health/pdf-generator")>
Public Function HealthCheck() As IActionResult
    Try
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<p>Health Check</p>")
        Return Ok(New With {Key .status = "healthy", Key .timestamp = DateTime.UtcNow})
    Catch ex As Exception
        Return StatusCode(503, New With {Key .status = "unhealthy", Key .error = ex.Message})
    End Try
End Function
$vbLabelText   $csharpLabel

新增檔案名稱參數會自動將Content-Disposition標頭設定為"attachment",從而提示瀏覽器下載檔案。使用者也可以使用瀏覽器的儲存功能(Ctrl+S 或 PDF 檢視器工具列)來儲存內嵌顯示的 PDF 檔案。 上面顯示的健康檢查端點對於 Kubernetes 部署和容器編排平台至關重要,可確保您的 PDF 服務保持回應。

輸出

PDF 檢視器顯示一個文檔,其中包含下載我文字和 IronPDF for .NET 徽標,在瀏覽器中以 100% 縮放顯示。 PDF 檢視器已成功顯示產生的發票文檔,並透過 IronPDF for .NET 啟用了下載功能。

為什麼應該對大型 PDF 檔案使用串流?

為了提高處理大型文件的記憶體效率,請使用串流:

public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    // Load and process HTML with images
    var html = "<h1>Streamed Content</h1>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Stream the PDF file to the browser
    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "document.pdf");
}

// Async streaming for better resource utilization
public async Task<IActionResult> StreamPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal container performance
    renderer.RenderingOptions.Timeout = 60000; // 60 seconds for complex documents
    renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute

    var html = await LoadHtmlTemplateAsync();
    var pdf = await Task.Run(() => renderer.RenderHtmlAsPdf(html));

    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "async-document.pdf");
}
public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    // Load and process HTML with images
    var html = "<h1>Streamed Content</h1>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Stream the PDF file to the browser
    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "document.pdf");
}

// Async streaming for better resource utilization
public async Task<IActionResult> StreamPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    // Configure for optimal container performance
    renderer.RenderingOptions.Timeout = 60000; // 60 seconds for complex documents
    renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute

    var html = await LoadHtmlTemplateAsync();
    var pdf = await Task.Run(() => renderer.RenderHtmlAsPdf(html));

    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "async-document.pdf");
}
Imports System.Threading.Tasks

Public Function StreamPdf() As IActionResult
    Dim renderer = New ChromePdfRenderer()
    ' Load and process HTML with images
    Dim html = "<h1>Streamed Content</h1>"
    Dim pdf = renderer.RenderHtmlAsPdf(html)
    ' Stream the PDF file to the browser
    Dim stream = pdf.Stream
    stream.Position = 0
    Return File(stream, "application/pdf", "document.pdf")
End Function

' Async streaming for better resource utilization
Public Async Function StreamPdfAsync() As Task(Of IActionResult)
    Dim renderer = New ChromePdfRenderer()
    ' Configure for optimal container performance
    renderer.RenderingOptions.Timeout = 60000 ' 60 seconds for complex documents
    renderer.RenderingOptions.RenderDelay = 500 ' Allow JS to execute

    Dim html = Await LoadHtmlTemplateAsync()
    Dim pdf = Await Task.Run(Function() renderer.RenderHtmlAsPdf(html))

    Dim stream = pdf.Stream
    stream.Position = 0
    Return File(stream, "application/pdf", "async-document.pdf")
End Function
$vbLabelText   $csharpLabel

這種方法透過將 PDF 直接串流到回應中,而無需建立中間位元組數組,從而減少了記憶體消耗。 您也可以從 wwwroot 資料夾載入現有的 PDF 文件,對其進行編輯,並串流修改後的版本。 若要進行進階PDF 文件操作影像處理,請查閱PdfDocument API 參考文件。 此元件支援各種編輯操作,包括文字選擇表單填寫和新增數位簽章

對於容器部署而言,非同步 PDF 生成方法可以防止線程阻塞並提高應用程式吞吐量——這對於在編排環境中保持響應迅速的服務至關重要。

使用者能否直接從 ASP.NET Core Web 應用程式列印 PDF 文件?

IronPDF 透過配置適當的 CSS 媒體類型和頁面設定來優化 PDF 以進行列印。 無論使用者是使用實體印表機列印還是儲存為 PDF 文件,這都能確保輸出專業品質:

public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure printing options for the PDF viewer
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;
    // Load HTML with print-specific CSS
    var html = @"<h1>Print-Optimized Document</h1>
                 <p>This document is optimized for printing.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return the PDF file for viewing and printing
    return File(pdf.BinaryData, "application/pdf");
}

// Container-optimized configuration
public IActionResult ConfigureForContainer()
{
    var renderer = new ChromePdfRenderer();
    // Disable GPU for container compatibility
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.RenderDelay = 0; // No artificial delays
    renderer.RenderingOptions.Timeout = 30000; // 30 second timeout

    // Use environment variables for configuration
    var printDpi = int.Parse(Environment.GetEnvironmentVariable("PDF_PRINT_DPI") ?? "300");
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    return Ok("Configured for container environment");
}
public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure printing options for the PDF viewer
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;
    // Load HTML with print-specific CSS
    var html = @"<h1>Print-Optimized Document</h1>
                 <p>This document is optimized for printing.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return the PDF file for viewing and printing
    return File(pdf.BinaryData, "application/pdf");
}

// Container-optimized configuration
public IActionResult ConfigureForContainer()
{
    var renderer = new ChromePdfRenderer();
    // Disable GPU for container compatibility
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.RenderDelay = 0; // No artificial delays
    renderer.RenderingOptions.Timeout = 30000; // 30 second timeout

    // Use environment variables for configuration
    var printDpi = int.Parse(Environment.GetEnvironmentVariable("PDF_PRINT_DPI") ?? "300");
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    return Ok("Configured for container environment");
}
Imports System

Public Class PdfController
    Public Function PrintablePdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' Configure printing options for the PDF viewer
        renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25
        renderer.RenderingOptions.MarginLeft = 25
        renderer.RenderingOptions.MarginRight = 25
        ' Load HTML with print-specific CSS
        Dim html As String = "<h1>Print-Optimized Document</h1>
                              <p>This document is optimized for printing.</p>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        ' Return the PDF file for viewing and printing
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    ' Container-optimized configuration
    Public Function ConfigureForContainer() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' Disable GPU for container compatibility
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.RenderDelay = 0 ' No artificial delays
        renderer.RenderingOptions.Timeout = 30000 ' 30 second timeout

        ' Use environment variables for configuration
        Dim printDpi As Integer = Integer.Parse(Environment.GetEnvironmentVariable("PDF_PRINT_DPI") Or "300")
        renderer.RenderingOptions.PrintHtmlBackgrounds = True

        Return Ok("Configured for container environment")
    End Function
End Class
$vbLabelText   $csharpLabel

CssMediaType設定為Print會套用特定於列印的 CSS 樣式,確保文件在列印時看起來正確。 頁邊距設定可為實際紙張提供適當的間距。 使用者可以直接從瀏覽器的 PDF 檢視器使用標準列印對話方塊列印 PDF 文件,並完全控製印表機的選擇和設定。 了解更多PDF 渲染選項,以微調您的輸出。

![PDF 檢視器介面顯示一個列印最佳化文檔,並在白色頁面的中央顯示訊息"此文檔已針對列印進行最佳化"。 PDF 檢視器會在文件最佳化為列印後顯示確認訊息,確保使用者知道他們的文件已準備好進行高品質輸出。

IronPDF 如何支援跨平台和容器部署?

IronPDF 可在 Windows、Linux、macOS、Docker 容器以及 Azure 和 AWS 等雲端平台上無縫運作。 這種跨平台相容性可確保您的 ASP.NET Core PDF 檢視器解決方案無論在何種部署環境下都能穩定運作。 該庫在內部處理特定於平台的渲染細節,因此您的程式碼無需修改即可在任何地方運行。

![跨平台支援圖,顯示 .NET 在多個版本、作業系統、雲端平台和開發環境中的相容性。 IronPDF 提供全面的跨平台支持,相容於 .NET 9 至 Framework 4.6.2+,可在 Windows、Linux 和 Mac 上運行,並與主流雲端服務供應商和開發工具整合。

伺服器端處理確保在所有平台上產生一致的 PDF 檔案。 無論部署在 Windows 伺服器或Linux 容器上,此元件都能保持相同的渲染品質。 該程式庫會自動管理作業系統之間的路徑差異,正確處理 wwwroot 資料夾或其他位置中的檔案。 對於容器化部署,請查看Docker 部署指南。 該軟體包包含了每個平台所需的所有依賴項,除了標準的 ASP.NET Core 要求外,無需任何其他配置。

對於生產環境的容器部署,請參考以下 Dockerfile 範例:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

# Install IronPDF dependencies for Linux
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    libx11-6 \
    && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["PdfViewerApp.csproj", "./"]
RUN dotnet restore "PdfViewerApp.csproj"
COPY . .
RUN dotnet build "PdfViewerApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "PdfViewerApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PdfViewerApp.dll"]

立即開始免費試用,提升您的文件檢視器功能。

使用 IronPDF 進行 ASP.NET Core PDF 檢視的主要優勢是什麼?

IronPDF 透過將伺服器端產生與瀏覽器原生檢視相結合,改變了 ASP.NET Core 應用程式中的 PDF 處理方式。 只需幾行程式碼,您就可以從 HTML 建立專業的 PDF,將其內嵌顯示,啟用下載,並針對列印進行最佳化。 基於 Chrome 的渲染引擎可確保在所有平台上實現像素級精確度,無需 Adobe Acrobat Reader 或第三方檢視器。

這款 ASP.NET Core PDF 檢視器解決方案提供了全面的功能,包括表單填寫文字選擇數位簽章編輯 PDF 的功能。 該元件還支援將Word 文件(DOCX 文件) 、Excel 電子表格和圖像轉換為 PDF 。 無論您是建立簡單的文件檢視器還是複雜的文件管理系統,IronPDF 都能提供您所需的工具。

該庫的標籤助理整合和詳盡的文件使實現變得簡單。 您的專案可以直接顯示 PDF 文件,而後端處理則負責複雜的PDF 生成任務。 無論從 wwwroot 資料夾載入、動態產生或從外部來源檢索,檢視器都保持一致的行為。 內建主題支援和可自訂寬度設置,您可以完美匹配應用程式的設計。 對於DevOps團隊而言, IronPDF Slim 軟體包可減少部署規模,從而解決編排環境中的容器大小限制。

準備好在您的 .NET Core Web 應用程式中實作 PDF 檢視功能了嗎?

生產用途的許可證起價為$799 ,並包含全面的支援和更新。 請造訪文件以取得詳細的 API 參考和進階功能。 請參考我們豐富的程式碼範例,快速在您的 ASP.NET Core 專案中實作 PDF 功能。

IronPDF 許可頁面顯示四個永久許可等級(Lite、Plus、Professional 和 Unlimited),包括定價、開發人員限制以及 IronPDF 和 Iron Suite 選項之間的切換。 IronPDF 提供多種許可選項,價格從單一開發人員的 749 美元到無限使用量的 3,999 美元不等,所有許可均包含 1 年的支援和更新。

常見問題解答

如何在 ASP.NET Core 應用程式中顯示 PDF?

您可以使用 IronPDF 在 ASP.NET Core 應用程式中顯示 PDF,IronPDF 提供在應用程式中直接呈現 PDF 檔案的功能。

使用 IronPDF for .NET 在 ASP.NET Core 中保存 PDF 的步驟是什麼?

要在 ASP.NET Core 中保存 PDF,您可以使用 IronPDF 的內建方法將文件轉換為 PDF 格式,然後將其寫入檔案系統或串流。

是否可以在 ASP.NET Core 應用程式中列印 PDF?

是的,IronPDF 可讓您使用其渲染和列印功能,直接從 ASP.NET Core 應用程式列印 PDF。

在 ASP.NET Core 中使用 IronPDF 有哪些優勢?

IronPDF for .NET 提供與 ASP.NET Core 的無縫整合,可輕鬆進行 PDF 操作,例如檢視、儲存和列印,且只需最少的設定。

IronPDF 可以在 ASP.NET Core 中處理大型 PDF 文件嗎?

是的,IronPDF 已進行最佳化,可有效率地處理大型 PDF 文件,即使處理複雜的檔案也能確保流暢的效能。

IronPDF 是否支持 ASP.NET Core 中的 PDF 注释和注释?

IronPDF 支援在 PDF 中新增和閱讀註解和註釋,可增強 ASP.NET Core 應用程式中 PDF 文件的互動性和可用性。

如何將 IronPDF 整合到現有的 ASP.NET Core 專案中?

您可以透過安裝 IronPDF NuGet 套件並使用其 API 來管理 PDF,將 IronPDF 整合到您的 ASP.NET Core 專案中。

在 ASP.NET Core 中使用 IronPDF 是否有特定的系統需求?

IronPDF 需要使用 .NET Core 或 .NET 5+ 並支援所有主要作業系統,因此是 ASP.NET Core 專案的靈活選擇。

IronPDF 可以在 ASP.NET Core 中將其他檔案格式轉換為 PDF 嗎?

是的,IronPDF 可以在 ASP.NET Core 環境中將 HTML、圖片和文件等各種檔案格式轉換為 PDF。

IronPDF 為 ASP.NET Core 開發人員提供哪些支援?

IronPDF 提供全面的文件、程式碼範例和回應式支援,協助 ASP.NET Core 開發人員實作 PDF 功能。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。