跳至頁尾內容
影片

如何在 C# | IronPDF 中將 QR 碼轉換為 PDF

PDFmyURL 是一項基於雲的API服務,設計用於將URL和HTML內容轉換為PDF文件。 該服務在外部伺服器上處理所有轉換,提供了一條簡單的整合路徑,僅需最低限度的本地基礎設施。 然而,這種依賴雲的架構對於處理敏感資料、需要離線功能或避免持續訂閱費用的生產應用程式來說,帶來了重大挑戰。

本指南提供從PDFmyURL遷移到IronPDF的完整遷移路徑,包括分步指南、程式碼比較和針對專業.NET開發者評估此過渡的實用範例。

為什麼要從PDFmyURL遷移

PDFmyURL的雲處理模型引入了一些開發團隊必須考慮的挑戰:

隱私與資料安全:您轉換的每個文件都會經過PDFmyURL的伺服器處理——敏感合同、財務報告和個人資料都在外部處理。

持續訂閱成本:計畫起價為$20/月(入門,500份PDF),$40/月(專業,2,000份PDF),和$70/月(高級,5,000份PDF),各級均無所有權。 這種訂閱模式意味著無論使用模式如何,都需持續支出。

網路依賴:每次轉換均需網路連接。 應用程式無法在離線或網路中斷時處理PDF。

速率限制與節流:在高峰使用期間,API調用可能會被限制,可能影響應用程式性能。

服務可用性:您的應用程式依賴於第三方服務的在線和功能。

供應商鎖定:API變更可能會無預警破壞您的整合,需要反應迅速的程式碼更新。

IronPDFvs PDFmyURL:功能比較

了解結構差異有助於技術決策者評估遷移投資:

方面 PDFmyURL IronPDF
處理位置 外部伺服器 本地(您的伺服器)
型別 API 包裝器 .NET 程式庫
身份驗證 每次請求的API金鑰 一次性授權金鑰
需要網路 每次轉換 僅初始設置
定價模式 每月訂閱($20-$70+) 可用的永久授權
速率限制 是(計畫依賴) None
資料隱私 資料外部傳送 資料保留在本地
HTML/CSS/JS支持 伺服器端渲染(符合W3C標準) 完整的Chromium引擎
非同步模式 HTTP請求(受網路限制) 同步和異步選項
PDF 操作 有限 完整套件(合併、拆分、編輯)
使用案例 低量應用程式 高量和企業

快速入門:從PDFmyURL到IronPDF的遷移

可以立即透過這些基本步驟開始遷移。

步驟1:安裝IronPDF

PDFmyURL沒有NuGet包——服務是一個REST API,可選的PDFmyURL.NET.dll組件以直接DLL下載方式提供(不在nuget.org上)。 大多數整合使用WebClient / HttpClient調用API,因此遷移主要涉及程式碼,而非包引用。 如果您使用了PDFmyURL.NET.dll組件,遷移後請從項目中刪除該引用。

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

步驟 2:更新命名空間

將PDFmyURL的導入替換為IronPDF:

// Before: PDFmyURL — either plain HttpClient/WebClient against pdfmyurl.com/api,
// or the optional .NET component:
using PDFmyURLdotNET;          // only if you used PDFmyURL.NET.dll
using System.Net;               // WebClient / HttpClient

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PDFmyURL — either plain HttpClient/WebClient against pdfmyurl.com/api,
// or the optional .NET component:
using PDFmyURLdotNET;          // only if you used PDFmyURL.NET.dll
using System.Net;               // WebClient / HttpClient

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
Imports PDFmyURLdotNET ' only if you used PDFmyURL.NET.dll
Imports System.Net ' WebClient / HttpClient

' After: IronPDF
Imports IronPdf
Imports IronPdf.Rendering
$vbLabelText   $csharpLabel

步驟 3:初始化授權

在應用啓動時新增授權初始化:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

程式碼遷移範例

將 URL 轉換為 PDF

URL到PDF的操作演示了PDFmyURL與IronPDF之間的基本API差異。

PDFmyURL方法:

// PDFmyURL REST API — no NuGet SDK. Docs: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string url = "https://example.com";

        try
        {
            using (var client = new WebClient())
            {
                client.QueryString.Add("license", license);
                client.QueryString.Add("url", url);
                // PDF binary is returned in the response body
                client.DownloadFile("https://pdfmyurl.com/api", "output.pdf");
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
// PDFmyURL REST API — no NuGet SDK. Docs: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string url = "https://example.com";

        try
        {
            using (var client = new WebClient())
            {
                client.QueryString.Add("license", license);
                client.QueryString.Add("url", url);
                // PDF binary is returned in the response body
                client.DownloadFile("https://pdfmyurl.com/api", "output.pdf");
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
Imports System
Imports System.Net

Class Example
    Shared Sub Main()
        Dim license As String = "your-license-key"
        Dim url As String = "https://example.com"

        Try
            Using client As New WebClient()
                client.QueryString.Add("license", license)
                client.QueryString.Add("url", url)
                ' PDF binary is returned in the response body
                client.DownloadFile("https://pdfmyurl.com/api", "output.pdf")
            End Using
        Catch ex As WebException
            Console.WriteLine("Error: " & ex.Message)
        End Try
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 方法:

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

class Example
{
    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 Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

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

PDFmyURL要求在每次轉換時打開與url作為查詢(或表單)參數,並將響應正文寫入磁碟。 錯誤根據HTTP狀態程式碼以WebException形式顯示。

IronPDF將此簡化為三行:建立SaveAs()方法。 不需每次請求的證書——授權在應用程式啟動時設置一次。

對於高級的URL到PDF場景,請參見URL到PDF文件

將HTML字串轉換為PDF

HTML字串轉換清楚展示了模式差異。

PDFmyURL方法:

// PDFmyURL REST API — no NuGet SDK. Send the raw HTML in the `html` parameter.
// Docs: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string html = "<html><body><h1>Hello World</h1></body></html>";

        try
        {
            using (var client = new WebClient())
            {
                var values = new NameValueCollection
                {
                    { "license", license },
                    { "html", html }
                };
                // POST form-encoded; response body is the PDF binary
                byte[] pdfBytes = client.UploadValues("https://pdfmyurl.com/api", "POST", values);
                File.WriteAllBytes("output.pdf", pdfBytes);
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
// PDFmyURL REST API — no NuGet SDK. Send the raw HTML in the `html` parameter.
// Docs: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string html = "<html><body><h1>Hello World</h1></body></html>";

        try
        {
            using (var client = new WebClient())
            {
                var values = new NameValueCollection
                {
                    { "license", license },
                    { "html", html }
                };
                // POST form-encoded; response body is the PDF binary
                byte[] pdfBytes = client.UploadValues("https://pdfmyurl.com/api", "POST", values);
                File.WriteAllBytes("output.pdf", pdfBytes);
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
Imports System
Imports System.Collections.Specialized
Imports System.IO
Imports System.Net

Class Example
    Shared Sub Main()
        Dim license As String = "your-license-key"
        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"

        Try
            Using client As New WebClient()
                Dim values As New NameValueCollection() From {
                    {"license", license},
                    {"html", html}
                }
                ' POST form-encoded; response body is the PDF binary
                Dim pdfBytes As Byte() = client.UploadValues("https://pdfmyurl.com/api", "POST", values)
                File.WriteAllBytes("output.pdf", pdfBytes)
            End Using
        Catch ex As WebException
            Console.WriteLine("Error: " & ex.Message)
        End Try
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 方法:

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

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Example
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFmyURL將原始HTML作為html表單參數POST到其API端點,返回渲染的PDF作為響應正文。 IronPDF的RenderHtmlAsPdf()在本地使用Chromium渲染引擎處理所有內容。

探索HTML到PDF轉換指南以獲得更多選項。

使用頁面設置進行HTML文件轉換

配置紙張大小、方向和邊距需要在每個程式庫中使用不同的方法。

PDFmyURL方法:

// PDFmyURL REST API — no NuGet SDK. Page settings are sent as query/form parameters.
// Parameter reference: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string html = File.ReadAllText("input.html");

        try
        {
            using (var client = new WebClient())
            {
                var values = new NameValueCollection
                {
                    { "license",     license },
                    { "html",        html },
                    { "page_size",   "A4" },
                    { "orientation", "landscape" },
                    { "top",         "10" },
                    { "unit",        "mm" }
                };
                byte[] pdfBytes = client.UploadValues("https://pdfmyurl.com/api", "POST", values);
                File.WriteAllBytes("output.pdf", pdfBytes);
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
// PDFmyURL REST API — no NuGet SDK. Page settings are sent as query/form parameters.
// Parameter reference: https://pdfmyurl.com/html-to-pdf-api
using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;

class Example
{
    static void Main()
    {
        string license = "your-license-key";
        string html = File.ReadAllText("input.html");

        try
        {
            using (var client = new WebClient())
            {
                var values = new NameValueCollection
                {
                    { "license",     license },
                    { "html",        html },
                    { "page_size",   "A4" },
                    { "orientation", "landscape" },
                    { "top",         "10" },
                    { "unit",        "mm" }
                };
                byte[] pdfBytes = client.UploadValues("https://pdfmyurl.com/api", "POST", values);
                File.WriteAllBytes("output.pdf", pdfBytes);
            }
        }
        catch (WebException ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
Imports System
Imports System.Collections.Specialized
Imports System.IO
Imports System.Net

Class Example
    Shared Sub Main()
        Dim license As String = "your-license-key"
        Dim html As String = File.ReadAllText("input.html")

        Try
            Using client As New WebClient()
                Dim values As New NameValueCollection From {
                    {"license", license},
                    {"html", html},
                    {"page_size", "A4"},
                    {"orientation", "landscape"},
                    {"top", "10"},
                    {"unit", "mm"}
                }
                Dim pdfBytes As Byte() = client.UploadValues("https://pdfmyurl.com/api", "POST", values)
                File.WriteAllBytes("output.pdf", pdfBytes)
            End Using
        Catch ex As WebException
            Console.WriteLine("Error: " & ex.Message)
        End Try
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 方法:

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

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Example
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        var pdf = renderer.RenderHtmlFileAsPdf("input.html");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class Example
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
        renderer.RenderingOptions.MarginTop = 10
        Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFmyURL通過新增類似in)一起使用。 IronPDF通過PdfPaperSize.A4等枚舉和以毫米為單位的整數邊距值。

PDFmyURL API到IronPDF映射參考

此映射透過展示直接的 API 等價加速遷移:

核心類別/入口點

PDFmyURL IronPDF
WebClient / HttpClient 發送至 https://pdfmyurl.com/api ChromePdfRenderer
PDFmyURL.NET.dll的可選.NET組件) ChromePdfRenderer
表單/查詢參數 ChromePdfRenderOptions
HTTP響應正文位元組 PdfDocument

方法

PDFmyURL IronPDF
WebClient.DownloadFile(".../api?license=...&url=...", file) renderer.RenderUrlAsPdf(url).SaveAs(file)
使用html=參數的POST renderer.RenderHtmlAsPdf(html)
File.ReadAllText("input.html") 然後發送html= renderer.RenderHtmlFileAsPdf(path)
pdf.ConvertURL(url, file) (PDFmyURL.NET.dll) renderer.RenderUrlAsPdf(url).SaveAs(file)
pdf.ConvertHTML(html, file) (PDFmyURL.NET.dll) renderer.RenderHtmlAsPdf(html).SaveAs(file)
HTTP響應正文(byte[] pdf.BinaryData
HTTP響應流 new MemoryStream(pdf.BinaryData)

配置選項

PDFmyURL設置是作為HTTP請求上的表單/查詢參數傳遞的。下表將真實的PDFmyURL參數名稱映射到IronPDF的RenderingOptions

PDFmyURL參數 IronPDF(RenderingOptions)
page_size=A4 .PaperSize = PdfPaperSize.A4
page_size=Letter .PaperSize = PdfPaperSize.Letter
orientation=landscape .PaperOrientation = PdfPaperOrientation.Landscape
orientation=portrait .PaperOrientation = PdfPaperOrientation.Portrait
top=10&unit=mm .MarginTop = 10
bottom=10&unit=mm .MarginBottom = 10
left=10&unit=mm .MarginLeft = 10
right=10&unit=mm .MarginRight = 10
header=<html> .HtmlHeader = new HtmlHeaderFooter { HtmlFragment = html }
footer=<html> .HtmlFooter = new HtmlHeaderFooter { HtmlFragment = html }
javascript_time=500 .RenderDelay = 500
no_javascript=true .EnableJavaScript = false
css_media_type=print .CssMediaType = PdfCssMediaType.Print

身份驗證比較

PDFmyURL IronPDF
每次API請求時的license=<key>查詢/表單參數 IronPdf.License.LicenseKey = "LICENSE-KEY"
每次請求的授權令牌 啟動時一次性設置
每次呼叫都需要 一次性全域設置

常見遷移問題及解決方案

問題1:授權令牌vs授權金鑰

PDFmyURL:每次API請求都需要license令牌。

解決方案:在應用程式啟動時設置IronPDF授權一次:

// PDFmyURL: license token per request
client.QueryString.Add("license", "your-license-key");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
// PDFmyURL: license token per request
client.QueryString.Add("license", "your-license-key");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
' PDFmyURL: license token per request
client.QueryString.Add("license", "your-license-key")

' IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
' Set once, typically in Program.vb or Startup.vb
$vbLabelText   $csharpLabel

問題2:標題/頁尾中的佔位符語法

PDFmyURL:header / [topage]等標記(請參閱在線API參考以獲得正規標記列表)。

解決方案:更新為IronPDF佔位符格式在HtmlHeaderFooter.HtmlFragment中:

// PDFmyURL: "Page [page] of [topage]"
// IronPDF: "Page {page} of {total-pages}"
// PDFmyURL: "Page [page] of [topage]"
// IronPDF: "Page {page} of {total-pages}"
' PDFmyURL: "Page [page] of [topage]"
' IronPDF: "Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

問題3:異步模式

PDFmyURL:是一個遠程HTTP呼叫; 通常使用pdfmyurl.com/api

解決方案:IronPDF預設為進程內同步操作; 如果需要,封裝以實現異步:

// PDFmyURL: HTTP request to the public endpoint
var response = await http.PostAsync("https://pdfmyurl.com/api", form);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
// PDFmyURL: HTTP request to the public endpoint
var response = await http.PostAsync("https://pdfmyurl.com/api", form);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
Imports System.Net.Http
Imports System.Threading.Tasks

' PDFmyURL: HTTP request to the public endpoint
Dim response = Await http.PostAsync("https://pdfmyurl.com/api", form)

' IronPDF: Sync by default, wrap for async
Dim pdf = Await Task.Run(Function() renderer.RenderUrlAsPdf(url))
$vbLabelText   $csharpLabel

問題4:錯誤處理

PDFmyURL:HTTP級別故障(無效授權、速率限制、網路錯誤、服務不可用)顯示為WebException/非成功狀態碼。

解決方案:更新catch塊為IronPDF的型別化異常:

// PDFmyURL: WebException from the HTTP call
catch (WebException e) { ... }

// IronPDF: Typed exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
// PDFmyURL: WebException from the HTTP call
catch (WebException e) { ... }

// IronPDF: Typed exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
$vbLabelText   $csharpLabel

問題5:配置模式

PDFmyURL:配置作為HTTP請求上的表單/查詢參數傳遞。

解決方案:使用強型別的RenderingOptions屬性:

// PDFmyURL: form/query parameters
values.Add("page_size", "A4");
values.Add("orientation", "landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// PDFmyURL: form/query parameters
values.Add("page_size", "A4");
values.Add("orientation", "landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
' PDFmyURL: form/query parameters
values.Add("page_size", "A4")
values.Add("orientation", "landscape")

' IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
$vbLabelText   $csharpLabel

PDFmyURL遷移檢查表

遷移前任務

審核您的程式碼庫以確定所有PDFmyURL的使用情況:

# Find PDFmyURL endpoint and component usage
grep -r "pdfmyurl.com/api\|PDFmyURLdotNET\|new PDFmyURL(" --include="*.cs" .

# Find license-token references
grep -r "license=\|licensekey" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "\[page\]\|\[topage\]" --include="*.cs" .
# Find PDFmyURL endpoint and component usage
grep -r "pdfmyurl.com/api\|PDFmyURLdotNET\|new PDFmyURL(" --include="*.cs" .

# Find license-token references
grep -r "license=\|licensekey" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "\[page\]\|\[topage\]" --include="*.cs" .
SHELL

記錄當前使用的配置參數(page_size、orientation、margins、header/footer等)。 計劃使用環境變數保存授權金鑰。

程式碼更新任務

  1. 如果您使用了可選的PDFmyURL.NET.dll引用,請將其刪除(沒有需要解除安裝的NuGet包)
  2. 安裝IronPDF NuGet包
  3. 更新所有命名空間導入
  4. 將每次請求的IronPdf.License.LicenseKey
  5. 將表單/查詢參數轉換為RenderingOptions屬性
  6. 更新標題/頁尾中的佔位符語法(例如{total-pages}
  7. 更新錯誤處理程式碼(WebException→型別化IronPDF異常)
  8. 在啟動時新增IronPDF授權初始化

遷移後測試

遷移後,驗證以下方面:

  • 測試PDF輸出質量是否符合預期
  • 驗證異步模式運行正常
  • 比較渲染保真度與先前的輸出
  • 測試所有模板變體是否正確渲染
  • 驗證頁面設置(大小、方向、邊距)
  • 如果部署到Linux伺服器,則安裝Linux依賴項

遷移到IronPDF的關鍵好處

從PDFmyURL遷移到IronPDF提供了幾個關鍵優勢:

完全隱私:文件絕不離開您的伺服器。 所有處理都在本地進行,消除了敏感內容的資料安全問題。

一次性費用:永久授權選項消除了持續的訂閱費用。 無論使用量如何,均不再需要每月付款。

離線能力:初始設置後無需網路即可工作。網路中斷不會影響PDF生成。

無速率限制:無節流擔憂地處理無限文件。

低延遲:無網路開銷意味著更快的轉換,特別是對於高量應用程式。

全控:您控制處理環境,而非第三方服務。

現代Chromium引擎:完整的CSS3和JavaScript支持,使用與Chrome瀏覽器相同的渲染引擎。

積極開發:IronPDF的定期更新確保與當前現代.NET版本相容。

請注意PDFmyURL是其註冊所有者的註冊商標。 本網站與PDFmyURL無關聯、未經批准、亦未受其贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供參考,反映撰寫時公開可用的資訊。

Curtis Chau
技術作家

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

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

Iron 支援團隊

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