跳過到頁腳內容
產品比較

IronPDF 和 PDFreactor 的比較

PDF(可攜式文件格式)檔案是許多不同工作環境中不可或缺的一部份,當涉及到製作發票或準備產品文件等工作時,PDF 檔案往往是不可或缺的。 然而,現在市面上有許多不同的 PDF 工具,您該如何知道哪一個適合您呢? 今天,我們將比較 PDF 函式庫的功能、支援和授權模式:PDFreactor 和 IronPDF

IronPDF。 和 PDFreactor 概述

IronPDF 是一個強大的 .NET 函式庫,旨在成為 .NET 生態系統中所有 PDF 相關任務的全面解決方案。 它支援 HTML、CSS、JavaScript 和各種圖片格式,因此對於網頁型應用程式有很高的適應性。 IronPdf 具有廣泛的功能,包括 PDF 生成、編輯、簽署和加密,以及與現代 .NET Framework 的完全整合,是 .NET 開發人員的一站式 PDF 解決方案。

PDFreactor 則是專業級的 HTML 至 PDF 轉換器,擅長於提供高品質的列印就緒 PDF,通常用於轉換資料驅動文件、報告或資料表等文件。 特別是在處理複雜的 CSS 和 JavaScript 方面有很強的能力,以確保所產生的 PDF 真實呈現原始網頁內容。 它因能輕鬆處理複雜版面和造型而備受推崇,因此適用於出版業和其他需要精確控制 PDF 輸出的產業。

跨平台相容性

IronPDF。:。

IronPDF 支援多種平台,確保您能在喜愛的環境下工作。 以下是其相容性的細目:

  • .NET版本:

    • C#, VB.NET, F#
    • .NET Core (8, 7, 6, 5, and 3.1+)
    • .NET Standard (2.0+)
    • .NET Framework (4.6.2+)
  • 應用環境: IronPDF 可在 Windows、Linux、Mac、Docker、Azure 和 AWS 等環境中運作。

  • IDE:可與 Microsoft Visual Studio 和 JetBrains Rider & ReSharper 等 IDE 搭配使用。

  • 作業系統與處理器:支援多種不同的作業系統與處理器,包括 Windows、Mac、Linux、x64、x86、ARM。

如需詳細資訊,請造訪 IronPDF相容性

PDFreactor。

  • .NET版本:

    • .NET Core 2.1+
    • .NET Framework 4.5 以上
  • 支援: HTML5、CSS3、JavaScript、Java、Python、Docker Image、Node.js 等。

  • 作業系統:可在 Windows、Linux 和 macOS 作業系統,以及 AWS 和 Azure 等雲端系統中運作。

主要功能比較:IronPDF 與 PDFreactor 的 PDF 功能比較。

IronPDF。 功能

  • HTML 至 PDF 的轉換: IronPDF 可以處理 HTML 至 PDF 的轉換,其完全支援現代網路標準,您可以放心,IronPDF 將持續從您的 HTML 內容傳回像素完美的 PDF。

  • PDF 檔案轉換: 需要將 HTML 以外的檔案格式轉換為 PDF? IronPDF 支援多種不同檔案格式的轉換,包括; DOCX 至 PDF、RTF 至 PDF、圖片至 PDF、URL 至 PDF,甚至 PDF 至 HTML,同時保持所需的文件結構。

  • 安全功能:借助 IronPDF 的安全功能,您可以始终确保任何敏感 PDF 文件的安全。 使用 IronPDF 加密您的 PDF 檔案、設定密碼,以及為 PDF 檔案設定權限。

  • PDF編輯功能:使用 IronPDF,您可以輕鬆編輯 PDF 檔案。 IronPDF 提供的編輯功能包括新增頁首和頁尾,在 PDF 頁面上印製文字和圖片,在 PDF 上新增自訂水印,處理 PDF 表單,以及合併 PDF 檔案。

如需 IronPDF 提供的詳細功能資訊,請造訪 IronPDF功能

PDFreactor。 功能

  • HTML 至 PDF 的轉換: PDFreactor 網路服務專門從伺服器端將 HTML 轉換為 PDF,通常用於動態資料驅動文件(如發票、表單、報告等)的轉換,以及複雜且高品質 PDF 的電子發行。

  • 互動式支援:由於支援 JavaScript,PDFreactor 支援嵌入互動式元素,例如按鈕和表格,這些元素可以在 PDF 中保留其功能。

  • 進階佈局設計: PDFreactor 提供進階佈局和設計功能,例如控制頁面佈局、支援多欄、在 PDF 中加入元素、縮放和轉換元素、加入頁首和頁尾,以及自訂頁面大小和方向。

Bootstrap 與現代 CSS 架構相容性

從現代網路應用程式產生 PDF 時,Bootstrap 和 CSS 架構支援是不可或缺的。 能夠直接將 Bootstrap 風格的網頁轉換為 PDF,而無需修改程式碼,可確保設計的一致性,並大幅縮短開發時間。

IronPdf:完整的 Bootstrap 和 CSS 框架支援。

  • Bootstrap 5:完整的 flexbox 排版引擎、CSS Grid、實用類和所有元件系統
  • Bootstrap 4:完整的卡片元件、導覽元件、flex 公用程式和反應式斷點
  • Tailwind CSS:所有實用為先的類別都能在瀏覽器上準確呈現
  • 基礎:完整的網格系統及元件庫支援
  • 現代 CSS3:Flexbox、CSS Grid、自訂屬性、動畫、轉場和變形

真實世界驗證:IronPDF 成功渲染 Bootstrap 首頁和所有 官方範例,精確度高達像素級。

程式碼範例:訂單追蹤儀表板

using IronPdf;

// Set your IronPDF license key
IronPDF.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapTracking = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='mb-4'>Order Tracking - #ORD-2025-0428</h1>

        <div class='row g-4 mb-4'>
            <div class='col-md-4'>
                <div class='card text-center bg-primary text-white h-100'>
                    <div class='card-body'>
                        <h3>Order Placed</h3>
                        <p class='mb-0'>April 20, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-info text-white h-100'>
                    <div class='card-body'>
                        <h3>Processing</h3>
                        <p class='mb-0'>April 21, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-light h-100'>
                    <div class='card-body'>
                        <h3 class='text-muted'>Delivered</h3>
                        <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-white'>
                <h5 class='mb-0'>Shipping Timeline</h5>
            </div>
            <div class='card-body'>
                <ul class='list-group list-group-flush'>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Confirmed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:30 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Payment Processed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:35 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Shipped</strong>
                            <p class='mb-0 text-muted'>April 21, 2025 at 9:00 AM</p>
                            <small class='text-muted'>Tracking: TRK-9876543210</small>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-primary me-3'>→</span>
                        <div class='flex-grow-1'>
                            <strong>In Transit</strong>
                            <p class='mb-0 text-primary'>Currently en route to delivery location</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Out for Delivery</strong>
                            <p class='mb-0 text-muted'>Pending</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Delivered</strong>
                            <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Order Details</h5>
            </div>
            <div class='card-body'>
                <div class='table-responsive'>
                    <table class='table mb-0'>
                        <thead class='table-light'>
                            <tr>
                                <th>Item</th>
                                <th>Quantity</th>
                                <th class='text-end'>Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td><strong>Premium Widget Pro</strong></td>
                                <td>2</td>
                                <td class='text-end'>$199.98</td>
                            </tr>
                            <tr>
                                <td><strong>Standard Gadget</strong></td>
                                <td>1</td>
                                <td class='text-end'>$49.99</td>
                            </tr>
                            <tr>
                                <td colspan='2'><strong>Subtotal</strong></td>
                                <td class='text-end'><strong>$249.97</strong></td>
                            </tr>
                            <tr>
                                <td colspan='2'>Shipping</td>
                                <td class='text-end'>$12.50</td>
                            </tr>
                            <tr class='table-primary'>
                                <td colspan='2'><strong>Total</strong></td>
                                <td class='text-end'><strong>$262.47</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTracking);
pdf.SaveAs("order-tracking.pdf");
using IronPdf;

// Set your IronPDF license key
IronPDF.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapTracking = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='mb-4'>Order Tracking - #ORD-2025-0428</h1>

        <div class='row g-4 mb-4'>
            <div class='col-md-4'>
                <div class='card text-center bg-primary text-white h-100'>
                    <div class='card-body'>
                        <h3>Order Placed</h3>
                        <p class='mb-0'>April 20, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-info text-white h-100'>
                    <div class='card-body'>
                        <h3>Processing</h3>
                        <p class='mb-0'>April 21, 2025</p>
                    </div>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='card text-center bg-light h-100'>
                    <div class='card-body'>
                        <h3 class='text-muted'>Delivered</h3>
                        <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                    </div>
                </div>
            </div>
        </div>

        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-white'>
                <h5 class='mb-0'>Shipping Timeline</h5>
            </div>
            <div class='card-body'>
                <ul class='list-group list-group-flush'>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Confirmed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:30 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Payment Processed</strong>
                            <p class='mb-0 text-muted'>April 20, 2025 at 2:35 PM</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-success me-3'>✓</span>
                        <div class='flex-grow-1'>
                            <strong>Order Shipped</strong>
                            <p class='mb-0 text-muted'>April 21, 2025 at 9:00 AM</p>
                            <small class='text-muted'>Tracking: TRK-9876543210</small>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-primary me-3'>→</span>
                        <div class='flex-grow-1'>
                            <strong>In Transit</strong>
                            <p class='mb-0 text-primary'>Currently en route to delivery location</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Out for Delivery</strong>
                            <p class='mb-0 text-muted'>Pending</p>
                        </div>
                    </li>
                    <li class='list-group-item d-flex'>
                        <span class='badge bg-secondary me-3'>○</span>
                        <div class='flex-grow-1'>
                            <strong>Delivered</strong>
                            <p class='mb-0 text-muted'>Est. April 25, 2025</p>
                        </div>
                    </li>
                </ul>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Order Details</h5>
            </div>
            <div class='card-body'>
                <div class='table-responsive'>
                    <table class='table mb-0'>
                        <thead class='table-light'>
                            <tr>
                                <th>Item</th>
                                <th>Quantity</th>
                                <th class='text-end'>Price</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td><strong>Premium Widget Pro</strong></td>
                                <td>2</td>
                                <td class='text-end'>$199.98</td>
                            </tr>
                            <tr>
                                <td><strong>Standard Gadget</strong></td>
                                <td>1</td>
                                <td class='text-end'>$49.99</td>
                            </tr>
                            <tr>
                                <td colspan='2'><strong>Subtotal</strong></td>
                                <td class='text-end'><strong>$249.97</strong></td>
                            </tr>
                            <tr>
                                <td colspan='2'>Shipping</td>
                                <td class='text-end'>$12.50</td>
                            </tr>
                            <tr class='table-primary'>
                                <td colspan='2'><strong>Total</strong></td>
                                <td class='text-end'><strong>$262.47</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTracking);
pdf.SaveAs("order-tracking.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出:專業的訂單追蹤 PDF,採用 Bootstrap 5 的網格系統、卡片元件、徽章、清單群組、反應式表格和 flexbox 佈局,所有呈現都具有完美的色彩精確度和間距。

PDFreactor。:具有 Java 依賴性的良好 Bootstrap 支援。

PDFreactor 使用 Prince XML 引擎,可提供穩固的 Bootstrap 支援,但也有架構上的考量:

  • Good Bootstrap 4/5 支援:Prince XML 能合理地處理現代框架
  • Java 要求:PDFreactor 在 Java 上執行,增加了 .NET 應用程式部署的複雜性
  • 伺服器架構:需要專用伺服器基礎架構
  • 授權模式:按伺服器授權,而非按開發人員授權

開發影響:雖然 PDFreactor 能有效處理 Bootstrap,但 Java 的依賴性和伺服器需求增加了 .NET 團隊的作業複雜度,需要額外的基礎架構管理和跨平台協調。

如需全面的 Bootstrap 框架指南和 CSS3 渲染功能,請參閱 Bootstrap & Flexbox CSS 指南

IronPDF 與 PDFreactor 的主要功能比較

現在,讓我們仔細看看您在處理 PDF 檔案時可能會面臨的一些常見用例。 在本節中,我們將以這些用例為基礎,比較 IronPDF 和 PDFreactor 如何處理這些用例。

HTML 至 PDF 轉換

IronPDF:

using IronPdf;

// Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external html assets: images, CSS and JavaScript.
// An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Enable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

' Export to a file or Stream
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external html assets: images, CSS and JavaScript.
' An optional BasePath 'c:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "c:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

using System.IO;
using RealObjects.PDFreactor.Webservice.Client;

PDFreactor pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest") {
    Timeout = 0
};
var config = new Configuration
{
    Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"
};

Result data = pdfReactor.Convert(config);
BinaryWriter binWriter = new BinaryWriter(new FileStream("test.pdf",
    FileMode.Create,
    FileAccess.Write));
binWriter.Write(data.Document);
binWriter.Close();
using System.IO;
using RealObjects.PDFreactor.Webservice.Client;

PDFreactor pdfReactor = new PDFreactor("https://cloud.pdfreactor.com/service/rest") {
    Timeout = 0
};
var config = new Configuration
{
    Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"
};

Result data = pdfReactor.Convert(config);
BinaryWriter binWriter = new BinaryWriter(new FileStream("test.pdf",
    FileMode.Create,
    FileAccess.Write));
binWriter.Write(data.Document);
binWriter.Close();
Imports System.IO
Imports RealObjects.PDFreactor.Webservice.Client

Private pdfReactor As New PDFreactor("https://cloud.pdfreactor.com/service/rest") With {.Timeout = 0}
Private config = New Configuration With {.Document = "http://www.pdfreactor.com/product/samples/textbook/textbook.html"}

Private data As Result = pdfReactor.Convert(config)
Private binWriter As New BinaryWriter(New FileStream("test.pdf", FileMode.Create, FileAccess.Write))
binWriter.Write(data.Document)
binWriter.Close()
$vbLabelText   $csharpLabel

IronPDF 使用 ChromePdfRenderer 並支援現代網路標準,因此可提供高保真 PDF 檔案。 使用 IronPdf 進行 HTML 至 PDF 的轉換時,您將能夠從 HTML 文件、網頁等創建像素完美的 PDF。 雖然 PDFreactor 以 HTML 至 PDF 的轉換功能引以為傲,並能提供高品質的 PDF 文件,但它採用較為手動的方式,需要更多行的程式碼。

如需瞭解更多使用 IronPDF 進行 HTML 至 PDF 轉換的範例,請造訪 IronPDF HTML 至 PDF

加密 PDF 文件

IronPDF:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from Html
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from Html
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
' The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights

' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 主要以 HTML 至 PDF 的轉換工具而聞名,因此不提供任何內建的 PDF 加密支援。

IronPDF 使用清晰的 C# 方法簡化了 PDF 加密,並為 加密 PDF 提供了一個簡單直接但功能強大的工具。 使用 IronPDF,您可以完全控制整個過程,甚至是安全設定。 使用 PDFreactor 時,您需要尋找可以處理 PDF 加密任務的第三方函式庫,因為 PDFreactor 目前不支援此功能。

如需更多加密範例,請造訪 IronPDF 有關此主題的 how-to 指南

重制 PDF 內容

IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

pdf.SaveAs("redacted.pdf");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 並不直接支援編輯,因為其功能集更偏重於從 HTML 內容產生 PDF 文件以及設計這些 PDF。

IronPdf 為您提供簡明易用的 刪除工具,讓您只需幾行程式碼即可刪除 PDF 文件中的內容。 然而,PDFreactor 並未提供任何內建的編輯工具。

簽署 PDF 文件

IronPDF:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 不直接支援數位簽章。

IronPDF 的數位簽章功能為您提供直接、簡單的方式,讓您自動化簽署 PDF 的方式。 而 PDFreactor 不提供任何將數位簽章套用至 PDF 文件的支援。

有關使用 IronPDF 對 PDF 文件套用數位簽章的更多資訊,請造訪此工具的 how-to 指南

將水印套用至 PDF 頁面

IronPDF:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)

pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 不直接支援水印。

IronPdf 的內建 watermark 工具利用 HTML 和 CSS 提供一種簡易的方式將水印套用至 PDF 頁面,同時讓您完全控制整個過程,而這一切只需使用幾行程式碼。

想要瞭解更多 IronPDF 的水印工具嗎? 請造訪我們對此工具有幫助的 how-to 指南

在 PDF 文件上標示圖片和文字

IronPDF:

using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);

pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);

pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)

pdf.SaveAs("stampText.pdf")

' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)

pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 不支援直接戳記

IronPDF 提供了一個強大的工具,可在 PDF 文件上標示文字和圖片。 透過近似 HTML 和 CSS 的方式,您可以完全控制蓋章流程。 然而,PDFreactor 並未提供任何內建戳記工具。

如果您想進一步瞭解 IronPDF 的圖像和文字戳記工具,請務必造訪我們的 使用指南

DOCX 至 PDF 轉換

IronPDF:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

PDFreactor:

PDFreactor 不支援 DOCX 到 PDF 的直接轉換,因為它的主要重點是 HTML 到 PDF 的轉換。

使用 IronPDF,您可以利用其簡明易用的 DOCX 轉換工具轉換您的 DOCX 檔案。 使用 PDFreactor 時,您需要安裝 DOCX 到 PDF 的轉換函式庫來處理轉換,因為 PDFreactor 並不支援此轉換。

如需更詳細瞭解 IronPDF 的 DOCX 至 PDF 轉換工具,請造訪相關的 使用指南

功能比較摘要

Pdfreactor Html To Pdf Alternative 1 related to 功能比較摘要

如需詳細的程式碼範例,請造訪 IronPDF 程式碼範例頁

定價與授權:IronPDF vs. PDFreactor

IronPDF。

IronPDF 有不同等級和購買授權的附加功能。 開發人員也可以購買 Iron Suite ,只要花費兩套產品的價格,就可以使用 Iron Software 的所有產品。 如果您尚未準備好購買授權,IronPDF 提供 免費試用,為期 30 天。

  • 永久授權:根據您的團隊規模、專案需求和地點數量,提供一系列永久授權。 每種授權類型都附有電子郵件支援。
  • Lite License:此授權費用為 $799 並支援一位開發人員、一個地點和一個專案。
  • Plus License: 支援三位開發人員、三個地點和三個專案,這是 Lite License 的進階版本,費用為 $1,199。 Plus License 除了提供基本的電子郵件支援外,還提供聊天支援和電話支援。
  • Professional License:此 License 適合較大規模的團隊,可支援十位開發人員、十個地點和十個專案,費用為 $2,399 。 它提供與前幾層相同的聯絡支援管道,但也提供螢幕分享支援。
  • 免版稅再發行: IronPDF 的授權也提供免版稅再發行的保障,只需額外支付 $2,399 的費用。
  • 不間斷的產品支援: IronPdf 提供持續的產品更新、安全功能升級,以及工程團隊的支援,費用為$1,199/年或一次性購買$2,399以獲得 5 年的保障。
  • Iron Suite:只需 $1,498 即可使用所有 Iron Software 產品,包括 IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint 和 IronWebScraper。

Pdfreactor Html To Pdf Alternative 2 related to IronPDF。

PDFreactor。

  • CPU 授權: 這是 PDFreactor 的基本費用,定價為 2,950 美元,最多支援 4 個 CPU 編碼,並包含第一年的支援和維護。

  • 附加元件:除了授權之外,PDFreactor 還提供下列附加元件; Raster Image Output 附加元件、一年的支援與維護延長,以及 CPU 授權升級。

文件和支援:IronPDF vs. PDFreactor

IronPDF。

IronPdf 擅長於提供廣泛的文件和支援:

  • 全面的說明文件: 涵蓋所有功能的廣泛且易於使用的說明文件。
  • 24/5 支援:提供積極的工程師支援。
  • 視訊教學:YouTube 上提供了分步視訊指南。
  • 社群論壇:提供額外支援的參與社群。
  • 定期更新:每月進行產品更新,以確保提供最新的功能和安全修補程式。

如需更多資訊,請參閱 IronPdf 廣泛的 說明文件,並請造訪 Iron Software YouTube 頻道

PDFreactor。

1.詳細說明文件:涵蓋 HTML 轉換為 PDF 的所有方面。 2.電子郵件支援:可用於技術和授權查詢。 3.社群論壇:與其他使用者和開發人員接觸。 4.知識庫:存取文章和疑難排解指南。 5.專業服務:複雜實作的付費支援。

結論

說到 HTML 到 PDF 的轉換,IronPDF 和 PDFreactor 都是有力的競爭者,兩者都完全有能力從 HTML 內容建立 PDF 文件。 但是,如果您正在尋找一款可以處理更複雜任務的 PDF 工具,例如加密、水印以及將 HTML 以外的檔案類型轉換為 PDF,那麼 IronPDF 就是您的最佳選擇。

IronPDF 具有廣泛的功能集、與現代 .NET Framework 的相容性以及優異的支援,是您唾手可得的強大工具。 PDFreactor 雖然在其小眾市場中功能強大,但卻缺乏 IronPDF 所提供的某些進階功能與彈性。

您可以嘗試30天免費試用,以查看其可用功能。

請注意PDFreactor 是其各自擁有者的註冊商標。 本網站與 PDFreactor 無任何關聯、背書或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

如何在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPdf 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。

IronPdf 與 PDFreactor 的主要差異為何?

IronPdf 提供了廣泛的功能,例如 PDF 生成、編輯、簽署和加密,以及對 HTML、CSS、JavaScript 和各種圖像格式的強大支援。PDFreactor 專注於高品質的 HTML 至 PDF 轉換,在處理複雜的 CSS 和 JavaScript 以製作可列印的 PDF 方面表現優異。

IronPdf 可以在多種平台上使用嗎?

是的,IronPdf 支援多種平台,包括 Windows、Linux、macOS、Docker、Azure 和 AWS。它與各種 .NET 版本相容,例如 .NET Core、.NET Standard 和 .NET Framework。

IronPdf 是否提供在 PDF 文件中添加數位簽名的功能?

是的,IronPdf 提供了一種直接的方式,使用其數位簽章功能對 PDF 應用數位簽章。

IronPdf 用戶可獲得哪些支援選項?

IronPdf 提供全面的支援,包括廣泛的文件、24/5 技術支援、視訊教學、社群論壇,以及定期更新以協助使用者。

IronPdf 提供哪些類型的授權?

IronPdf 提供多種授權選項,包括永久授權和套件選項,以及電子郵件支援和免版稅再發行等優點。

IronPdf 如何處理 PDF 中複雜的 CSS 和 JavaScript?

IronPdf 支援 PDF 中複雜的 CSS 和 JavaScript,因此非常適合生成具有複雜設計和互動元素的網頁型文件。

是否可以使用 IronPdf 加密 PDF 文件?

是的,IronPdf 提供內建的 PDF 加密支援,讓您可以使用強大的密碼保護功能來保護您的文件。

除了 HTML 之外,IronPdf 還有哪些轉換功能?

IronPdf 支援將各種檔案格式轉換為 PDF,例如 DOCX、RTF 和影像,同時維持所需的文件結構。

IronPdf 可以為 PDF 檔案套用水印和圖章嗎?

是的,IronPdf 允許使用者使用 HTML 和 CSS 在 PDF 文件上加入水印和圖章,讓使用者可以完全控制外觀。

Curtis Chau
技術作家

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

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