跳過到頁腳內容
產品比較

CraftMyPDF vs IronPDF: Which PDF Generation Library for C# Developers?

IronPDF 提供程式碼優先的 HTML 到 PDF 轉換,支援完整的 CSS/JavaScript,永久授權價格為 $749 起;而CraftMy PDF 提供基於雲端的模板設計,並整合了 JSON,但需要持續訂閱和 API 依賴。

CraftMyPDF提供基於雲端的拖放模板設計器,並整合了 JSON 資料;而IronPDF提供程式碼優先的HTML 到 PDF 轉換,並為尋求完全控製文件產生的 .NET 開發人員提供完整的 CSS/JavaScript 支援。

PDF ,即便攜式文件格式,是由Adobe公司開發的一種用於文件交換的文件格式。 它可在各種裝置上保留格式、字體和影像,確保外觀一致。 PDF 檔案支援安全功能、互動性和壓縮功能,使其成為可靠文件共享的理想選擇。

C# PDF 程式庫使開發人員能夠以程式設計方式建立修改提取 PDF 中的內容。 這些工具支援表單處理數位簽章跨平台部署。 透過整合 PDF 庫,開發人員可以直接向其應用程式添加文件生成功能,簡化建立編輯管理 PDF 的工作流程。

本文比較了兩種不同的 PDF 產生方法: IronPDF C# 庫Craftmypdf API 。 此比較分析了各項功能,提供了程式碼範例,並討論了許可選項

CraftMyPDF API基礎解決方案是什麼?

CraftMyPDF 主頁展示了拖放 PDF 編輯器介面,其中正在即時編輯裝箱單模板。

CraftMyPDF是一個基於雲端的 API,用於透過範本建立 PDF 檔案。 它提供了一個基於網頁的拖放式編輯器,無需編碼即可設計可重複使用的模板。 該平台透過將這些範本與 JSON 資料合併來產生 PDF,支援動態產生發票報告和證書等文件的內容。

CraftMyPDF的主要功能有哪些?

1.拖放式編輯器:無需編碼知識的可視化模板設計器。

2.模板可重用性:一次設計,可重複用於不同的資料集。

  1. JSON 資料整合:透過 JSON 將動態資料與範本合併。

4.進階格式和表達式:動態設定日期、數字和貨幣的格式。

  1. API 整合: REST API 支援 Zapier、Make.com 和自訂應用程式。

6.可填寫元件:建立帶有文字欄位和複選框的互動式表單

7.安全性和合規性:透過區域 API 端點和 GDPR 合規性確保 PDF 存取安全性。

IronPDF是什麼?

IronPDF PDF Library for .NET Developers是一個完整的 .NET 應用程式 PDF 函式庫。 程式使用 C# 編寫,可根據HTMLCSSJavaScript圖像產生像素級完美的 PDF 。 IronPDF 透過在.NET 環境中提供廣泛的建立、編輯和管理功能,簡化了 PDF 工作流程。

IronPDF的主要功能有哪些?

  1. HTML 轉 PDF 轉換:將 HTML、CSS 和 JavaScript 轉換為 PDF,精確度達到像素級

  2. URL 轉 PDF:從任何 URL 產生 PDF ,保留內容和響應式樣式

3.影像轉 PDF:將 JPG、PNG、GIF、BMP 和 SVG 轉換為 PDF 文檔,支援多幀 TIFF

4.表單填寫和資料擷取:透過程式設計方式建立和填寫帶有自訂驗證的PDF 表單。

5.數位簽章和安全性:新增數位簽章密碼權限,並支援 HSM

  1. PDF 編輯:新增、複製或刪除頁面合併和拆分PDF文件,並支援頁面旋轉功能。

7.註釋和附件:新增便箋和嵌入帶有自訂元資料的附件

8.頁首、頁尾和浮水印:使用HTML 範本套用自訂頁首、頁尾浮水印

9.跨平台相容性:可在WindowsmacOSLinuxDockerAzureAWS上運作。

10.效能最佳化:支援多執行緒和非同步並行處理,以實現高容量生成。

11.完整的文件:豐富的指南教學24/5 技術支援

12.無外部依賴:使用原生渲染引擎,無需額外軟體需求即可部署單一 DLL。

如何在 Visual Studio 中建立 C# 應用程式?

建立 C# 控制台應用程式需要在電腦上安裝 Visual Studio。 請依照以下步驟設定項目:

如何開啟 Visual Studio?

從"開始"功能表或桌面圖示啟動 Visual Studio。

如何建立新專案?

  1. 在起始頁點選"建立新項目"
  2. 搜尋"控制台應用程式"或從範本清單中選擇。

如何選擇專案範本?

根據需求選擇"控制台應用程式 (.NET Core)""控制台應用程式 (.NET Framework)" 。 對於.NET MAUI 支持,請選擇合適的 MAUI 範本。

如何配置我的專案?

1.項目名稱:請輸入項目名稱 2.位置:選擇儲存目錄 3.解決方案名稱:通常與專案名稱一致

  1. 點選"建立"繼續

如何安裝 IronPDF?

IronPDF 提供三種安裝方法: NuGet 套件管理器套件管理器控制台和直接下載。 該程式庫支援WindowsmacOSLinux雲端部署

如何使用 NuGet 套件管理器?

在 Visual Studio 中,以滑鼠右鍵按一下解決方案資源管理器中的"參考"或"依賴項"。 選擇"管理 NuGet 套件",搜尋"IronPDF",然後按一下"安裝"。

Visual Studio NuGet 套件管理器顯示 IronPDF 搜尋結果,其中已安裝主 IronPDF 套件版本 2024.5.2,並且可見 IronPdf.Native.Chrome.Windows 和 IronPdf.Slim 等相關套件。

如何使用 NuGet 套件管理器控制台?

開啟"工具">"NuGet 套件管理員">"套件管理員控制台",然後執行:

Install-Package IronPdf

如何從 NuGet 網站下載?

造訪NuGet 網站,下載套件文件,並將其作為套件來源新增至 Visual Studio 。 對於Docker 部署,請使用特定的容器配置。

如需詳細指導,請參閱安裝概述進階 NuGet 設定

如何使用CraftMyPDF

若要整合CraftMyPDF ,請建立帳戶、選擇套餐並取得 API 憑證。

如何建立帳戶並選擇免費套餐?

1.註冊:CraftMyPDF 網站註冊 2.選擇免費方案:選擇免費方案進行開發與測試 3.取得 API 金鑰:從帳戶控制面板存取 API 金鑰。

CraftMyPDF 控制面板顯示免費方案訂閱詳情、已使用 6/50 個積分,以及包含簽名域等新功能和錯誤修復的最新更新日誌

我需要安裝哪些函式庫?

安裝System.Net.HttpRestSharpNewtonsoft.Json套件:

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
$vbLabelText   $csharpLabel

初始化 API 客戶端:

var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
$vbLabelText   $csharpLabel

如何創建PDF文件?

這兩個庫提供了不同的PDF生成方法。 IronPDF 使用基於程式碼的HTML 渲染,而CraftMyPDF則使用具有資料綁定的視覺化模板。 IronPDF 也支援Markdown 轉 PDFXML 轉 PDF 的轉換。

如何使用 IronPDF 建立 PDF 文件?

如何將HTML轉換為PDF?

直接將 HTML 字串轉換為 PDF,並完全支援 CSSJavaScript 渲染

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
$vbLabelText   $csharpLabel

這是 IronPDF 生成的 PDF 文件的屏幕截圖,顯示了Hello, IronPDF!標題和示例文本,演示了 HTML 到 PDF 的轉換。

更多範例請造訪HTML 轉 PDF 範例頁面。 開發者還可以設定自訂邊距新增分頁符號配置紙張尺寸

如何將URL轉換為PDF?

將網頁轉換為 PDF,同時保留所有樣式,包括WebGL 內容響應式 CSS

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
$vbLabelText   $csharpLabel

IronPDF 主頁展示了使用 C# 中的 ChromePdfRenderer 庫進行 HTML 轉 PDF 轉換的 C# 程式碼範例,該庫的 NuGet 下載量已達 9,229,207 次,並介紹了其主要功能

了解更多關於URL轉PDF的資訊。 已驗證的頁面,請參閱TLS 網站登入HTTP 請求標頭

如何將HTML檔案轉換為PDF?

將本機 HTML 檔案轉換為 PDF,並支援CSS 媒體類型基本 URL

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
$vbLabelText   $csharpLabel

詳情請參閱HTML 文件轉 PDF 指南。 對於HTML ZIP 文件,IronPDF 會自動處理提取。

如何使用CraftMyPDF API 建立 PDF?

CraftMyPDF需要先建立模板,然後透過合併資料產生 PDF 檔案。

如何建立模板?

1.登入控制台:造訪CraftMyPDF帳戶 2.建立新模板:使用拖放式編輯器進行設計 3.儲存範本:取得用於 API 呼叫的範本 ID

CraftMyPDF範本管理儀表板顯示了一個帶有編輯工具和教學資源的發票範本

如何發送產生 PDF 的請求?

透過向模板發送 JSON 資料生成 PDF:

using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
$vbLabelText   $csharpLabel

Visual Studio 偵錯控制台顯示 CraftMyPDF API 成功產生 PDF 輸出,並包含 JSON 回應詳情

生成的PDF輸出:

Tech Innovations Ltd 開立的發票顯示,該公司提供多種技術服務,包括搜尋引擎優化 (SEO)、數位行銷、技術支援、Web 應用程式和雲端託管,折扣和稅後總額為 2,907.00 歐元。

如何使用 Bootstrap 產生專業發票?

IronPDF 無需外部依賴即可渲染現代框架。 這個 Bootstrap 5 範例示範如何使用響應式設計列印 CSS產生專業的發票:

using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
$vbLabelText   $csharpLabel

輸出:附有 Bootstrap 5 漸層標題、響應式表格和計算摘要的專業發票 PDF。 IronPDF 可以完美地渲染所有 CSS 漸層、表格樣式和實用類別——無需外部 API 呼叫、模板或網路連線。 與 CraftMyPDF 的雲端方式不同,IronPDF 可以在您的伺服器上即時產生發票,並擁有完整的控制權。

這段程式碼的作用是什麼?

1.設定RestClient使用CraftMyPDF API 端點初始化客戶端 2.新增請求頭:包含用於身份驗證的 API 金鑰和內容類型 3.準備請求體:建立包含範本資料和選項的 JSON 對象 4.發送請求:執行 API 呼叫產生 PDF 5.處理回應:下載產生的 PDF 或顯示錯誤訊息

技術型創辦人的主要差異是什麼?

基於模板的方法和程式碼優先的方法有何不同?

基於模板( CraftMyPDF ): 非技術團隊成員可以建立和修改模板 範本在雲端控制面板中集中管理。

  • 模板的更改不需要部署程式碼 受限於模板設計限制
  • 最適合佈局可預測的標準化文檔

程式碼優先(IronPDF):

  • 使用 HTML 和 CSS 完全控製文件佈局
  • JavaScript 支援可實現動態圖表和計算 範本是程式碼庫的一部分,並納入了版本控制。
  • 與任何網路技術都能實現無限的設計彈性
  • 非常適合需要程式邏輯的複雜、動態文檔

對於Razor 模板,IronPDF 為MVC CoreMVC FrameworkRazor Pages提供原生支援。

不同規模下的成本影響是什麼?

CraftMyPDF成本結構: 免費套餐:每月 50 次 API 調用,最多可使用 3 個範本。 付費套餐的月費起價較高。 每個PDF的成本與文件數量呈線性關係

  • 持續的月度/年度訂閱費用
  • 高級功能的額外費用

IronPDF成本結構: -免費試用,全面評估

  • 一次性永久許可,起價$799
  • 無單次PDF費用或使用限制
  • 包含一年的更新和支援服務
  • SaaS產品的OEM再分銷選項

對於每月處理 1000 個以上 PDF 文件的應用程序,IronPDF 的永久許可證提供可預測的成本,無需持續費用。 許可證費用計算器有助於估算總擁有成本。 考慮為不斷壯大的團隊進行升級擴展

開發工作流程有何不同?

CraftMyPDF工作流程:

  1. 設計者在網頁介面建立模板
  2. 開發人員將 JSON 欄位對應到模板
  3. API 整合需要進行身份驗證設置
  4. 測試需要呼叫 API 並消耗積分。
  5. 模板更新發生在程式碼部署之外

IronPDF 工作流程:

  1. 開發人員用程式碼編寫 HTML/CSS 模板。 2.本地測試不受 API 限制
  2. 範本隨應用程式程式碼一起部署
  3. 版本控制追蹤所有更改
  4. CI/CD 整合以實現自動化測試

IronPDF 的獨立式方法可以加快迭代週期並支援離線開發,這對快速開發至關重要。 該庫支援自訂日誌記錄渲染選項,方便調試。

資料隱私和合規性方面又該如何解決?

CraftMyPDF數據處理:

  • 在雲端伺服器上處理的文檔
  • 需要透過網路進行資料傳輸
  • 區域合規性終點 暫存檔案儲存策略 第三方資料處理協議

IronPDF 數據處理:

對於處理敏感客戶資料的應用程序,IronPDF 的本地處理消除了第三方隱私問題。 數位簽章密碼保護提供了額外的安全保障。 該庫也支援PDF/APDF/UA標準,以符合相關規範。

我多久可以新增的文件類型?

CraftMyPDF時間軸:

  • 模板設計:1-4 小時,取決於複雜程度
  • 現場測繪與測試:1-2 小時
  • 取決於設計師的檔期 模板審批流程可能會增加延誤。 受限於編輯器功能

IronPDF 時間軸:

  • HTML範本建立:30分鐘至2小時
  • 使用現有的 Web 框架,例如 Bootstrap
  • 在文件中重複使用 CSS 樣式表
  • 本地測試並獲得即時回饋
  • 透過定期發布部署新的文件類型

IronPDF 的程式碼優先方法通常可以縮短新文件類型的上市時間,尤其是在使用現有 Web 資源和框架時。 本程式庫支援RTF 轉 PDFDOCX 轉 PDFMarkdown 轉 PDF轉換,以提供更大的彈性。

有哪些授權許可選項?

IronPDF 定價頁面顯示三種永久許可等級:Lite(749 美元)、Plus(1,499 美元)和 Professional(2,999 美元),並提供功能比較以及可選的免版稅再分發附加元件(1,499 美元)。

IronPDF提供一次付費的永久許可證。 Lite 授權( $799 )支援單一開發者在一個專案上進行開發。 專業版授權( $1,199 )涵蓋多個專案和開發人員。 企業版授權( $2,399 )適用於部署需求廣泛的大型團隊。 每個許可證均包含一年的支援和更新服務。 OEM再分發許可允許商業分發。 提供免費試用版供您評估。 查看完整的授權選項

CraftMyPDF採用訂閱式定價模式。 免費套餐適用於 API 呼叫次數有限的開發和測試。 付費方案可提高使用限額並增加功能,以滿足業務需求。 訂閱透過CraftMyPDF控制面板進行管理。

有哪些文件和支援服務?

IronPDF 提供哪些文件和支援服務?

IronPDF 提供完整的文檔,包括詳細指南、範例快速入門部分。 資源涵蓋從基本用法到高級配置的各個方面。 支援管道包括知識庫、電子郵件支援和工程支援請求。 我們的支援團隊每週 5 天、每天 24 小時運轉,隨時為您提供協助。 故障排除指南針對常見問題進行講解。

文件包括所有功能的API 參考教學程式碼範例變更日誌記錄更新內容,里程碑事件突出主要版本發布。 有關遷移支持,請參閱比較AsposeiTextSyncfusion其他競爭對手的指南。

CraftMyPdf提供哪些文件和支援服務?

CraftMyPDF提供 API 文檔,詳細介紹了端點、參數和範例。 指南涵蓋範本建立、API 請求和回應處理。 您可以透過電子郵件和社群論壇獲得支持,提出問題並分享見解。

我應該選擇哪種PDF解決方案?

IronPDF 和CraftMyPDF都提供強大的 PDF 生成解決方案,但它們的方法各有不同。 CraftMyPDF優勢在於其視覺化模板設計器和基於雲端的處理功能,而 IronPDF 則透過HTML 渲染提供完全的程式化控制。

IronPDF憑藉其豐富的功能集,能夠滿足複雜的文件需求,因此脫穎而出。 它可以將HTMLURL文件轉換為 PDF,同時支援數位簽章表單處理文件編輯等高級功能。 無需外部相依性的獨立部署確保了跨平台的可靠運作。

授權模式差異很大。 IronPDF 的永久授權起價為$799 ,並提供免費試用版供評估。 Iron Suite 套裝以兩款產品的價格提供九款產品,為滿足完整的文件管理需求提供了卓越的價值。

對於需要完全控制 PDF 產生、具備豐富的HTML/CSS 支援、進階文件操作和可預測成本的開發人員來說,IronPDF 提供了一個可靠的解決方案。 其豐富的文件快速回應的支援和靈活的部署選項使其適用於從簡單的文件生成到複雜的企業工作流程等各種應用。

CraftMyPDF是其各自所有者的註冊商標。 本網站與CraftMyPDF無任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 文中比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

與基於 API 的解決方案相比,使用 C# PDF 函式庫有哪些優點?

像 IronPDF 這樣全面的 PDF 函式庫提供廣泛的功能、與 .NET 開發環境的無縫整合、強大的支援以及符合成本效益的授權選項,使其成為處理複雜文件的優越選擇。

如何使用 C# 將 HTML 內容轉換成 PDF 文件?

您可以使用 IronPDF 將 HTML 內容轉換成 PDF 文件。它支援 HTML5 和 CSS3,確保網頁內容能在生成的 PDF 中準確呈現。

IronPDF 在 PDF 生成方面突出了哪些功能?

IronPDF 提供數位簽章、表格填寫、PDF 編輯、註解和跨平台相容性。它擅長將 HTML、URL 和圖片轉換為 PDF,並提供強大的效能和最佳化。

CraftMyPDF 如何處理 PDF 模板設計?

CraftMyPDF 提供基於網頁的拖放式編輯器,讓使用者無需編碼即可設計 PDF 範本。它支援 JSON 資料整合,可建立自訂的 PDF 文件。

IronPDF 等 PDF 工具有哪些授權選項?

IronPDF 提供靈活的授權選項,包括 Lite、Professional 和 Enterprise 授權,只需一次性付費。它還為新使用者提供免費試用,以探索其功能。

如何將 PDF 生成 API 整合到我的 C# 應用程式中?

要整合類似 CraftMyPDF 的 PDF 生成 API,您需要建立一個帳戶、選擇合適的方案、取得 API 金鑰,並使用 System.Net.Http 和 RestSharp 等函式庫來進行 API 呼叫。

使用 IronPDF 的開發人員可以獲得哪些支援資源?

IronPDF 提供廣泛的文件、教學和 24/5 技術支援。這些資源可幫助開發人員在其專案中有效地實作函式庫並排除故障。

如何在 C# 應用程式中安裝 IronPDF?

IronPdf 可透過 Visual Studio 中的 NuGet Package Manager 安裝,或使用 NuGet Package Manager Console,或直接從 NuGet 網站下載套件。

IronPDF 如何增強 PDF 文件的安全性和互動性?

IronPDF 支援數位簽章和表單處理等功能,可增強文件安全性和互動性,適合進行全面的 PDF 管理。

Curtis Chau
技術撰稿人

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

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