跳至頁尾內容
使用IRONPDF

使用IronPDF在C#中將PDF轉換為字節陣列

結合Telerik UI的精緻PDF查看器組件與IronPDF的Chrome驅動渲染引擎,以在Blazor中建立完整的PDF解決方案。 此設置允許您從HTML生成動態PDF,並為使用者提供專業的查看功能,例如搜尋、縮放和導航控制。

在構建現代Blazor應用程式時,經常需要可靠的PDF查看功能。 雖然Telerik UI for Blazor提供出色的PDF查看器組件,將其與IronPDF的高效生成引擎整合可為您的應用程式處理PDF文件提供完整的解決方案。 此整合使您能從HTML建立PDF、將URL轉換為PDF,並將CSHTML視圖渲染為PDF,同時提供專業的查看功能。

為什麼將Telerik UI與IronPDF結合?

Telerik Blazor PDF查看器在顯示PDF時表現出色,擁有搜尋文字、縮放控制及可自定義工具欄等功能。 但是,當您需要從HTML、URL或Razor視圖動態生成PDF文件時,IronPDF提供了Telerik UI的文件處理程式庫中未包含的Chrome驅動渲染引擎。 IronPDF的Chrome渲染引擎確保在將網頁內容轉換為PDF時的像素級精確度。

這種混合方法允許您使用IronPDF的卓越PDF建立功能,同時使用Telerik的精緻UI元件進行顯示。 當現代化傳統網頁專案或建立需要同時生成和查看功能的新Blazor PDF解決方案時,它特別有效。 您還可以新增頁首和頁尾應用浮水印,並在顯示前設置自訂邊距至生PDF中。

這一整合有什麼價值?

這一結合解決了常見的PDF工作流程需求 - 在動態生成發票、報告或文件的同時,為使用者提供熟悉的PDF查看控制功能。 IronPDF處理了基本HTML到PDF轉換器錯過的複雜渲染場景,包括JavaScript執行、CSS3支持和網頁字體渲染,而Telerik則提供使用者期望的專業介面。

您應該什麼時候一起使用這兩個程式庫?

這種方法最適合那些需要PDF生成和查看的應用程式,比如文件管理系統、報告儀表板或客户門戶。 如果您只需要顯示現有的PDF,僅Telerik就夠了; 如果您只需要生成而不需要查看,僅IronPDF即可完美運作。 對於需要數位簽名、PDF/A合規性或PDF安全功能的企業場景,此結合提供了完整的功能。

您如何安裝和設置專案?

在您的Blazor專案中設置這兩個程式庫需要安裝必要的NuGet封裝。 您可以使用封裝管理器控制台或.NET CLI。 IronPDF可以在NuGet.org找到,並支持.NET 10及更高版本。 有關詳細資訊,請參閱IronPDF NuGet安裝指南

Install-Package IronPdf

安裝後,配置您的Program.cs以新增服務:

builder.Services.AddTelerikBlazor();
builder.Services.AddSingleton<ChromePdfRenderer>();
builder.Services.AddTelerikBlazor();
builder.Services.AddSingleton<ChromePdfRenderer>();
$vbLabelText   $csharpLabel

此配置使您的應用程式能夠使用Telerik UI for Blazor元件和IronPDF的渲染功能。 已經熟悉Telerik的DevCraft套件使用者會發現這一整合簡單明瞭。 對於更複雜的場景,您可能想探索非同步PDF生成或自定義日誌配置。

您應該考慮哪些配置選項?

除了基本設置,您可能想全域配置IronPDF的渲染選項或設置依賴注入以進行自定義PDF生成服務。 根據應用需求,考慮為PDF壓縮、渲染超時或自訂字體管理新增配置。

您如何處理兩個產品的授權問題?

兩個程式庫都要求商業授權才能在生產環境中使用。 IronPDF授權是基於開發者數量和部署情況,而Telerik UI for Blazor通常作為DevCraft捆綁的一部分提供。 確保您對部署場景有適當的授權。 了解更多有關IronPDF授權選項的資訊,以及如何在應用專案中應用授權金鑰。 您還可以探索IronPDF免費試用以在購買前測試整合效果。

您如何使用IronPDF建立用於顯示的PDF文件?

IronPDF將HTML內容轉換為Telerik PDF查看器可以顯示的PDF文件。 以下是如何從HTML生成PDF並準備顯示的方法。 您還可以將HTML字串轉換為PDF或直接渲染HTML文件:

@page "/generate-pdf"
@inject ChromePdfRenderer Renderer
@code {
    private byte[] pdfData;
    private async Task GeneratePDF()
    {
        // Create PDF from HTML content
        var pdf = await Renderer.RenderHtmlAsPdfAsync(@"
            <h1>Invoice Report</h1>
            <table>
                <tr><td>Item</td><td>Amount</td></tr>
                <tr><td>Service</td><td>$100</td></tr>
            </table>");
        // Convert to byte array for Telerik viewer
        pdfData = pdf.BinaryData;
    }
}
@page "/generate-pdf"
@inject ChromePdfRenderer Renderer
@code {
    private byte[] pdfData;
    private async Task GeneratePDF()
    {
        // Create PDF from HTML content
        var pdf = await Renderer.RenderHtmlAsPdfAsync(@"
            <h1>Invoice Report</h1>
            <table>
                <tr><td>Item</td><td>Amount</td></tr>
                <tr><td>Service</td><td>$100</td></tr>
            </table>");
        // Convert to byte array for Telerik viewer
        pdfData = pdf.BinaryData;
    }
}
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Components
Imports DinkToPdf

@page "/generate-pdf"
@inject ChromePdfRenderer Renderer

@code
    Private pdfData As Byte()

    Private Async Function GeneratePDF() As Task
        ' Create PDF from HTML content
        Dim pdf = Await Renderer.RenderHtmlAsPdfAsync("
            <h1>Invoice Report</h1>
            <table>
                <tr><td>Item</td><td>Amount</td></tr>
                <tr><td>Service</td><td>$100</td></tr>
            </table>")
        ' Convert to byte array for Telerik viewer
        pdfData = pdf.BinaryData
    End Function
End Code
$vbLabelText   $csharpLabel

此程式碼生成一個隨時可顯示的PDF文件。 IronPDF的渲染引擎確保您的HTML、CSS和JavaScript內容完美渲染,當使用者通過PDF查看器物件查看時,保持所有格式。 您還可以將影像新增到PDF中,從Azure Blob Storage嵌入影像,或將影像直接轉換為PDF。 探索IronPDF全方位功能以了解可能性。

ChromePdfRenderer類提供廣泛的自定義選項。 您可以設置頁面大小、邊距、頁首、頁尾,並為印刷媒體定義自定義CSS - 這些特徵補充了Telerik的查看功能。 針對高級場景,探索頁面中斷控制、視口配置或載入資產所需的基本URL設置。

生成的PDF看起來如何?

生成的PDF將看起來像這樣:

A PDF document viewer showing an Invoice Report with a table containing Item and Amount columns, displaying a Service entry for $100, demonstrating IronPDF's HTML-to-PDF rendering capabilities with clean formatting and professional layout

您如何自訂PDF生成設定?

IronPDF通過ChromePdfRenderOptions提供廣泛的自訂功能,允許您控制頁面方向、大小、邊距和JavaScript執行。 您還可以新增浮水印,應用頁首和頁尾,並在將PDF傳遞給查看器之前以程式方式新增頁碼。 對於文件組織,考慮新增書籤或建立目錄。 IronPDF文件詳細介紹了所有可用選項。

您如何整合Telerik的PDF查看器Blazor元件?

一旦您使用IronPDF生成了PDF,使用Telerik Blazor PDF查看器顯示就再簡單不過了:

<TelerikPdfViewer Data="@pdfData"
                  Height="600px"
                  Zoom="1.0">
    <PdfViewerToolBar>
        <PdfViewerToolBarPagerTool />
        <PdfViewerToolBarZoomTool />
        <PdfViewerToolBarSearchTool />
        <PdfViewerToolBarDownloadTool />
    </PdfViewerToolBar>
</TelerikPdfViewer>
<TelerikPdfViewer Data="@pdfData"
                  Height="600px"
                  Zoom="1.0">
    <PdfViewerToolBar>
        <PdfViewerToolBarPagerTool />
        <PdfViewerToolBarZoomTool />
        <PdfViewerToolBarSearchTool />
        <PdfViewerToolBarDownloadTool />
    </PdfViewerToolBar>
</TelerikPdfViewer>
$vbLabelText   $csharpLabel

該元件配置提供與PDF交互的基本工具。 工具欄包括導航按鈕、縮放比例控制、搜尋功能。 您可以根據應用需求自訂顯示哪些工具。 Data屬性提供要顯示的PDF值。 為提高功能,您可能想要實施文字提取或PDF搜尋功能。

Telerik UI for Blazor查看器自動處理瀏覽器相容性,在現代瀏覽器中不需要外掛程式即可工作。 對於使用.NET MAUI的桌面應用程式,這兩個程式庫都支持跨平台部署,使您能夠跨網頁和平臺建立一致的PDF體驗。

可用的工具欄自訂有哪些?

Telerik的PDF查看器工具欄高度自訂 - 您可以新增、刪除或重新排列工具、建立自訂按鈕甚至構建完全自訂的工具欄。 常見的自訂包括新增列印按鈕、全屏切換或應用特定的功能。 您還可以將PDF列印功能或PDF表單編輯能力整合到自己的工具欄中。 Telerik的官方文件提供了全方位自訂選項的清單。

您如何處理大型PDF文件?

對於大型PDF,考慮使用逐步載入或通過PDF記憶流進行流式傳輸。 Telerik查看器支持從URL載入PDF,這有助於性能提升。 您可能還需要實施生成PDF的伺服器端快取,以免重新生成相同文件。 為了優化,探索PDF合併和拆分技術以減少文件大小或將文件分成可管理的塊。

這些元件如何協作運作?

整合建立了一個有效的工作流程,IronPDF負責PDF建立的繁重工作,而Telerik提供精緻的查看體驗。 這裡是一個完整的範例,展示了如何從帶有動態內容的HTML建立PDF:

@page "/document-viewer"
@inject ChromePdfRenderer Renderer
<div class="row">
    <div class="col-md-12">
        <TelerikButton OnClick="@LoadDocument">
            Load PDF Document
        </TelerikButton>
        @if (documentData != null)
        {
            <TelerikPdfViewer Data="@documentData"
                            Height="800px">
            </TelerikPdfViewer>
        }
    </div>
</div>
@code {
    private byte[] documentData;
    private async Task LoadDocument()
    {
        // Generate dynamic PDF content
        var html = await GenerateReportHtml();
        var pdf = await Renderer.RenderHtmlAsPdfAsync(html);
        documentData = pdf.BinaryData;
    }
    private async Task<string> GenerateReportHtml()
    {
        // Build HTML dynamically
        return "<h1>Dynamic Report</h1><p>Report content here</p>";
    }
}
@page "/document-viewer"
@inject ChromePdfRenderer Renderer
<div class="row">
    <div class="col-md-12">
        <TelerikButton OnClick="@LoadDocument">
            Load PDF Document
        </TelerikButton>
        @if (documentData != null)
        {
            <TelerikPdfViewer Data="@documentData"
                            Height="800px">
            </TelerikPdfViewer>
        }
    </div>
</div>
@code {
    private byte[] documentData;
    private async Task LoadDocument()
    {
        // Generate dynamic PDF content
        var html = await GenerateReportHtml();
        var pdf = await Renderer.RenderHtmlAsPdfAsync(html);
        documentData = pdf.BinaryData;
    }
    private async Task<string> GenerateReportHtml()
    {
        // Build HTML dynamically
        return "<h1>Dynamic Report</h1><p>Report content here</p>";
    }
}
@page "/document-viewer"
@inject ChromePdfRenderer Renderer
<div class="row">
    <div class="col-md-12">
        <TelerikButton OnClick="@LoadDocument">
            Load PDF Document
        </TelerikButton>
        @If documentData IsNot Nothing Then
            <TelerikPdfViewer Data="@documentData"
                              Height="800px">
            </TelerikPdfViewer>
        End If
    </div>
</div>
@code
    Private documentData As Byte()
    
    Private Async Function LoadDocument() As Task
        ' Generate dynamic PDF content
        Dim html = Await GenerateReportHtml()
        Dim pdf = Await Renderer.RenderHtmlAsPdfAsync(html)
        documentData = pdf.BinaryData
    End Function

    Private Async Function GenerateReportHtml() As Task(Of String)
        ' Build HTML dynamically
        Return "<h1>Dynamic Report</h1><p>Report content here</p>"
    End Function
End Code
$vbLabelText   $csharpLabel

整合解決方案看起來如何?

A professional invoice PDF displayed in Telerik Blazor PDF Viewer showing multiple line items including consulting services and software licenses totaling $550, demonstrating the smooth integration between IronPDF's generation capabilities and Telerik's viewing components with full toolbar controls

此模式允許您按需生成PDF並立即顯示。 當有新資料可用時,元件會自動更新,這比傳統的下載和打開工作流程提升了使用者體驗。 OnClick事件觸發文件載入流程。 您可以通過合併多個PDF、新增附件或實施版本控制進一步改進。

對於需要載入現有PDF文件的場景,IronPDF可以在傳遞給查看器之前進行處理。 這使得像浮水印、頁面操作或內容提取等功能的實現成為可能。 高級使用者還可以實施PDF消毒或賦閱以保護敏感文件。 您還可以與PDF表單一起工作,在向終端使用者展示文件前預填表單欄位。

您如何新增互動功能?

超出基本查看,您可以通過在顯示之前使用IronPDF處理PDF實施功能如表單填寫、數位簽名或註釋。 這使您能夠在保持Telerik查看器的使用者友好介面的同時,建立互動式文件工作流程。 您可以程式性地簽署PDF或新增簽名欄位以支援e-簽名工作流程。 這些功能使得這種方法適合需要可审計性和文件完整性的規範行業。

性能優化怎麼樣?

考慮使用托管服務或隊列背景生成複雜文件的PDF。 快取頻繁存取的PDF,並在儲存或傳輸PDF資料時使用壓縮,以提高應用程式的響應性。 對於大容量場景,探索非同步和多執行緒選項或並行PDF生成。 您還可以通過對JavaScript負載含量設置自訂渲染延時來改善渲染效果。

為什麼選擇這種混合方法?

儘管Telerik UI for Blazor提供優秀的查看能力,但它無法比擬IronPDF的PDF生成能力。 IronPDF的Chrome驅動引擎可以渲染複雜的佈局、表單和樣式內容,而簡單的文件處理程式庫可能會困難。 通過結合兩者,您可以獲得專業的PDF生成與專業的查看介面相結合。

這種方法為需要探索不同查看選項的開發者提供靈活性。 您可以用更簡單的iframe顯示或開發自訂查看元件取代Telerik查看器,同時保留IronPDF的生成能力。 該解決方案從簡單的HTML到PDF轉換到複雜的報告生成場景皆可擴展。 IronPDF主頁面提供所有支持用例的概述。

成本效益考慮是什麼?

使用兩個商業程式庫會增加授權成本,但節省的開發時間和達到的專業效果往往為投資做了正名。 考慮從頭建立PDF生成與查看的替代方案--綜合解決方案可立即提供具生產力的功能。 兩個程式庫都提供出色的文件,IronPDF包含完整的操作指南和程式碼範例以加速開發。 查看IronPDF授權頁面以選擇符合您的開發團隊大小和部署環境的計畫。

這與其他解決方案相比如何?

僅使用開源程式庫的替代方案經常需要更多開發工作,並可能缺乏功能或精緻度。 基於雲的PDF服務則會引入延遲和資料隱私問題。 這種混合方法則保持一切在您的應用中,同時提供領先功能。 例如,您可以完全控制PDF到影像轉換,而不用經過外部服務轉遞資料。 查看Telerik文件IronPDF文件了解每個程式庫如何互相補充。

實作的下一步是什麼?

使用IronPDF建立一個Telerik Blazor PDF查看器讓您獲得最佳的效果: 有效的PDF生成與精緻的查看體驗。 這一結合幫助您構建完整的PDF解決方案,可以現代化傳統網路專案並滿足現代應用需求。 無論是在Windows,Linux還是macOS部署,這兩個程式庫都提供跨平台支援。

無論您是構建文件管理系統、報告工具或任何需要PDF功能的Blazor應用程式,這一整合提供了您的專案所需的功能和使用者體驗。 從簡單的發票生成到複雜的報告生成,綜合解決方案有效地處理各種需求。

準備好實施這一解決方案了嗎? 開始您的免費IronPDF試用以探索它如何改善您的Telerik UI for Blazor專案。 對於生產使用,請查看IronPDF授權選項以找到適合您需求的選項。

常見問題

什麼是Telerik Blazor PDF Viewer?

Telerik Blazor PDF Viewer是一個設計用來直接在Blazor應用程式中顯示PDF文件的元件,為使用者提供無縫的查看體驗。

IronPDF如何增強Telerik Blazor PDF Viewer?

IronPDF通過提供強大的PDF生成功能來增強Telerik Blazor PDF Viewer,允許開發者在Blazor應用程式中高效地建立、修改和管理PDF文件。

為什麼要將IronPDF與Telerik UI for Blazor結合?

將IronPDF與Telerik UI for Blazor結合提供了一個全面的解決方案來處理PDF,因為IronPDF為Telerik現有的查看功能增加了高級生成和操作功能。

我能在Blazor應用程式中使用IronPDF生成PDF嗎?

是的,IronPDF允許您在Blazor應用程式中生成高品質的PDF,提供HTML到PDF轉換等功能和詳細的自訂選項。

在Blazor應用程式中使用IronPDF處理PDF有什麼好處?

IronPDF提供強大的功能,例如PDF生成、轉換和編輯能力,能夠增強Blazor應用程式中PDF處理的功能和靈活性。

將IronPDF與Telerik Blazor元件整合是否容易?

是的,IronPDF可以輕鬆整合到Telerik Blazor元件中,以擴充其功能,為建立Blazor應用程式的開發人員提供無縫的體驗。

IronPDF為Blazor開發者提供了哪些功能?

IronPDF提供HTML到PDF轉換、PDF編輯以及新增頁眉、頁腳和浮水印的能力,為Blazor開發者提供一個多元化的工具。

IronPDF如何改善Blazor應用程式中的使用者體驗?

IronPDF通過啟用諸如輕鬆文件生成、自訂和整合等複雜的PDF功能來改善使用者體驗,從而使應用程式更具動態性和回應性。

是什麼使IronPDF成為Blazor應用程式的全面PDF解決方案?

IronPDF是全面的解決方案,因為它結合了生成、轉換和編輯功能,當與Telerik元件一起使用時,涵蓋了Blazor應用程式中PDF處理的各個方面。

IronPDF能在Blazor應用程式中處理大型PDF文件嗎?

是的,IronPDF設計用來高效處理大型PDF文件,確保在Blazor應用程式中保持流暢性能和減少載入時間。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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