跳過到頁腳內容
使用IRONPDF

如何在 ASP.NET Core 檢視器中顯示、保存和打印 PDF

如何在 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 類型(application/pdf)的 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 提供最佳化的容器映像,最大限度地減少部署複雜性——這對於管理容器化環境的工程師來說至關重要。

如何使用 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 參考文件

對於管理微服務架構的工程師來說,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,它提供了直接在您的應用程式中呈現 PDF 檔案的功能。

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

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

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

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

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

IronPDF 與 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 專案中。

使用 IronPDF 和 ASP.NET Core 有什麼具體的系統需求嗎?

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 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我