跳過到頁腳內容
遷移指南

如何在 C# 中從 PDFView4NET 轉移到 IronPDF

從PDFView4NET轉換到IronPDF可將您的 PDF 工作流程從以 UI 為重點的檢視元件轉換為全面的 PDF 產生與處理函式庫。 本指南提供完整的逐步遷移路徑,可實現伺服器端處理、Web 應用程式支援,以及PDFView4NET無法提供的完整 PDF 生命週期管理功能。

為什麼要從PDFView4NET轉移到 IronPDF?

瞭解 PDFView4NET。

PDFView4NET 是主要專注於 C# 中 PDF 檢視功能的開發人員的熱門選擇。PDFView4NET提供專為 Windows 窗體 (WinForms) 和 Windows Presentation Foundation (WPF) 應用程式量身打造的強大 PDF 檢視控制項。 圖書館強調提供無縫 PDF 檢視體驗,使其成為桌面應用程式開發的首選。

儘管PDFView4NET有其優點,但也有其限制,這可能會促使開發人員探索更全面的函式庫,例如 IronPDF,它提供了多合一的 PDF 解決方案,包含建立、檢視和操作功能,而不受限於特定的 UI 元件。

僅限於檢視的限制

PDFView4NET 主要是WinForms和WPF應用程式的 UI 檢視元件。 它著重於顯示 PDF,而非建立或操作 PDF。 遷移的主要原因:

1.僅查看限制:PDFView4NET僅用於查看,不用於建立 PDF。

  1. UI 框架依賴性:需要WinForms或WPF環境。 對WinForms或WPF環境的要求可能會限制在其他情境中的使用,例如控制台應用程式或 Web 服務,PDFView4NET 並不支援這些情境。

3.不支援 HTML 轉 PDF:無法將 HTML 或 URL 轉換為 PDF。 該函式庫嚴格著重於檢視,沒有建立或處理 PDF 檔案的內建功能。

4.操作有限:與IronPDF的完整功能集相比,僅提供基本編輯功能。

5.不支援伺服器端:無法在 Web 服務或AzureFunctions 中運作。

6.傳統技術:開發活動較少,現代功能更新較少。

PDFView4NET與IronPDF比較

特點 PDFView4NET IronPDF
主要焦點 PDF 檢視 完整的 PDF 解決方案 (建立、檢視、編輯)
需要UI 框架 WinForms、WPF
PDF製作
PDF 操作 有限 (註解)
伺服器端 不支援 全面支援
網路應用程式
控制台應用程式 限額 全面支援
Azure/Docker
HTML至PDF
跨平台背景
容易整合 語言 高的

IronPDF 以其多功能性和全面的功能集脫穎而出,對於需要以 C# 方式全面處理 PDF 的開發人員而言尤其具有吸引力。 該函式庫支援 PDF 的建立、檢視、編輯等功能,可處理的使用個案遠遠超過PDFView4NET的檢視功能。

對於計劃在 2025 年和 2026 年之前採用 .NET 10 和 C# 14 的團隊而言,IronPDF 提供了上下文獨立性--它可以在不同的上下文中使用,包括 Web 應用程式、服務和主控台應用程式。 這種靈活性對於需要跨平台支援和多樣化部署情境的專案而言至關重要。


開始之前

先決條件

  1. .NET環境: .NET Framework 4.6.2+ 或.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet存取權限:能夠安裝NuGet套件
  3. IronPDF許可證:請從IronPDF取得您的許可證密鑰。

NuGet 套件變更


<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />

<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />
XML

或透過 CLI:

dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
SHELL

授權組態

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

完整的 API 參考資料

命名空間變更

// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;

// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;

// After: IronPDF
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

核心 API 對應

PDFView4NET IronPDF
PDFFile.Open(path) PdfDocument.FromFile(path)
PDFFile.Open(stream) PdfDocument.FromStream(stream)
pdfFile.GetPage(index) pdf.Pages[index]
pdfFile.PageCount pdf.PageCount
PDFPrintDocument pdf.Print()
pdfFile.Close() pdf.Dispose()
HtmlToPdfConverter ChromePdfRenderer
不適用 PdfDocument.Merge()
不適用 pdf.ApplyWatermark()
不適用 pdf.SecuritySettings

程式碼遷移範例

範例 1:URL 到 PDF 的轉換

之前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System

Class Program
    Shared Sub Main()
        Dim converter As New HtmlToPdfConverter()
        converter.NavigateUri = New Uri("https://example.com")
        converter.ConvertHtmlToPdf()
        converter.SavePdf("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFView4NET 使用 HtmlToPdfConverter,並將 NavigateUri 屬性設為 Uri 對象,然後呼叫 ConvertHtmlToPdf(),然後呼叫 @@--CODE-19210--@@。IronPDF將其簡化為一個 ChromePdfRenderer,其中包含 RenderUrlAsPdf(),它直接接受字串 URL,傳回一個 PdfDocument,您可以使用 SaveAs() 來儲存它。IronPDF的方法提供了更簡潔的語法,並能更好地與現代 .NET 應用程式整合。 請參閱 HTML to PDF 文件,以瞭解全面的範例。

範例 2:HTML 字串至 PDF 的轉換

之前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
        Dim converter As New HtmlToPdfConverter()
        converter.HtmlContent = htmlContent
        converter.ConvertHtmlToPdf()
        converter.SavePdf("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFView4NET 使用 HtmlContent 屬性來設定 HTML 字串,然後需要呼叫 ConvertHtmlToPdf(),接著呼叫 SavePdf()。IronPDF提供了一個更流暢的 API,其中 RenderHtmlAsPdf() 直接接受 HTML 字串並傳回 PdfDocument。 方法名稱更直觀:RenderHtmlAsPdfConvertHtmlToPdf。 請參閱我們的 教學,瞭解更多資訊。

範例 3:從 PDF 擷取文字

之前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
Imports O2S.Components.PDFView4NET
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Using fs As FileStream = File.OpenRead("document.pdf")
            Dim document As New PDFDocument(fs)
            Dim text As String = ""
            For i As Integer = 0 To document.Pages.Count - 1
                text &= document.Pages(i).ExtractText()
            Next
            Console.WriteLine(text)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

After (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")
        Dim text As String = pdf.ExtractAllText()
        Console.WriteLine(text)
    End Sub
End Class
$vbLabelText   $csharpLabel

本範例強調 API 的重大差異。PDFView4NET需要手動建立一個 FileStream,使用流實例化 PDFDocument,然後循環遍歷 document.Pages.Count,並將 Pages[i].ExtractText() 連接到每一頁。

IronPDF 大大簡化了這個過程:PdfDocument.FromFile() 直接從路徑載入 PDF,並且 ExtractAllText() 在一次方法呼叫中從所有頁面提取文字。 不需要手動串流管理、不需要循環、不需要字串串接 - 只需要兩行程式碼。


關鍵遷移注意事項

轉換器類別變更

PDFView4NET 使用 HtmlToPdfConverter;IronPDF使用 ChromePdfRenderer:

// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
' PDFView4NET
Dim converter As New HtmlToPdfConverter()

' IronPDF
Dim renderer = New ChromePdfRenderer()
$vbLabelText   $csharpLabel

基於屬性的 API vs 基於方法的 API

PDFView4NET 會在轉換前設定屬性:

// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
' PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent
converter.NavigateUri = New Uri(url)
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")

' IronPDF: Method parameters with fluent API
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

文件載入變更

// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
Imports System.IO
Imports PDFView4NET
Imports IronPDF

' PDFView4NET: Requires FileStream
Using fs As FileStream = File.OpenRead("document.pdf")
    Dim document As New PDFDocument(fs)
End Using

' IronPDF: Direct file path
Dim pdf = PdfDocument.FromFile("document.pdf")
$vbLabelText   $csharpLabel

頁面存取變更

// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
' PDFView4NET: document.Pages.Count and Pages(i)
For i As Integer = 0 To document.Pages.Count - 1
    document.Pages(i).ExtractText()
Next

' IronPDF: pdf.PageCount and Pages(i) or ExtractAllText()
Dim text As String = pdf.ExtractAllText()
' Or per-page: pdf.ExtractTextFromPage(0)
$vbLabelText   $csharpLabel

儲存方法變更

// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

遷移後的新功能

轉移到IronPDF之後,您將獲得PDFView4NET無法提供的功能:

PDF 合併

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
$vbLabelText   $csharpLabel

使用 HTML 的水印

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>")
pdf.SaveAs("watermarked.pdf")
$vbLabelText   $csharpLabel

密碼保護

var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

表格填寫

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("FirstName").Value = "John"
pdf.Form.GetFieldByName("LastName").Value = "Doe"
pdf.SaveAs("filled_form.pdf")
$vbLabelText   $csharpLabel

伺服器端處理

PDFView4NET 無法在伺服器環境中執行。IronPDF在這方面表現出色:

// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
<HttpGet>
Public Function GeneratePdf() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(GetReportHtml())
    Return File(pdf.BinaryData, "application/pdf", "report.pdf")
End Function
$vbLabelText   $csharpLabel

功能比較摘要

特點 PDFView4NET IronPDF
檢視 PDF 是 (UI) 無(使用檢視器)
載入 PDF
儲存 PDF 限額
HTML 至 PDF
URL 至 PDF
合併 PDF
分割 PDF 限額
水印
頁首/頁尾
密碼保護
數位簽名
文字擷取 限額
填寫表格 限額
WinForms
WPF
控制台 限額
ASP.NET
Azure
Docker

遷移清單

預遷移

  • 確定查看需求(確定IronPDF的功能是否可以取代基於 UI 的 PDF 檢視方式)
  • 文件列印工作流程
  • 列出 PDF 處理需求
  • 如有需要,可更換計劃檢視器(IronPDF 主要專注於生成/操作)
  • ironpdf.com取得IronPDF許可證金鑰

套件變更

  • 刪除 O2S.Components.PDFView4NET NuGet 套件 安裝 IronPdf NuGet 套件:dotnet add package IronPdf

程式碼變更

  • 更新命名空間導入(using O2S.Components.PDFView4NET;using IronPdf;
  • HtmlToPdfConverter 替換為 ChromePdfRenderer
  • converter.HtmlContent + ConvertHtmlToPdf() 替換為 renderer.RenderHtmlAsPdf(html)
  • converter.NavigateUri + ConvertHtmlToPdf() 替換為 renderer.RenderUrlAsPdf(url)
  • converter.SavePdf() 替換為 pdf.SaveAs()
  • PDFDocument(stream) 替換為 PdfDocument.FromFile(path)
  • 將手動頁面循環提取替換為 pdf.ExtractAllText()
  • 在應用程式啟動時新增許可證初始化

後遷移

  • 測試 PDF 載入和儲存
  • 驗證文字擷取功能
  • 測試 HTML 至 PDF 的轉換
  • 驗證伺服器部署是否正常運作(新增功能)
  • 如有需要,請進行跨平台測試(新增功能)
  • 如果僅伺服器端,則移除特定於使用者介面的 PDF 程式碼

Curtis Chau
技術作家

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

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

鋼鐵支援團隊

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