フッターコンテンツにスキップ
移行ガイド

C#でPDFmyURLからIronPDFへ移行する方法

PDFmyURLからIronPDFへの移行:完全なC#開発者ガイド

PDFmyURLは、URLとHTMLコンテンツをPDFドキュメントに変換するために設計されたクラウドベースのAPIサービスです。 このサービスでは、すべての変換を外部サーバーで処理するため、ローカルインフラを最小限に抑えた、わかりやすい統合パスを提供します。 しかし、このようなクラウド依存のアーキテクチャは、機密データを扱ったり、オフライン機能を必要としたり、継続的なサブスクリプションコストを回避する必要がある本番アプリケーションにとって、重大な懸念を生じさせます。

このガイドはPDFmyURLからIronPDFへの完全な移行経路を、移行を検討しているプロの.NET開発者のために、ステップバイステップの説明、コード比較、実用的な例とともに提供します。

なぜPDFmyURLから移行するのですか?

PDFmyURLのクラウド処理モデルには、開発チームが考慮しなければならないいくつかの課題があります:

プライバシーとデータセキュリティ: 変換された文書はすべてPDFmyURLのサーバーに送られ、PDFmyURLのサーバーを経由します-機密性の高い契約書、財務報告書、個人データはすべて外部で処理されます。

継続的なサブスクリプション費用: 39ドル/月から始まり、年間費用は468ドル/年を超え、所有権はありません。このサブスクリプションモデルは、使用パターンに関係なく継続的な支出を意味します。

インターネットへの依存:すべての変換にはネットワーク接続が必要です。 アプリケーションは、オフラインまたはネットワーク停止中にPDFを処理することはできません。

レート制限とスロットリング:APIコールはピーク使用時にスロットルされる可能性があり、アプリケーションのパフォーマンスに影響を与える可能性があります。

サービスの可用性: あなたのアプリケーションは、サードパーティのサービスがオンラインかつ機能的であることに依存しています。

ベンダーロックイン:APIが変更されると、予告なしに統合が壊れる可能性があり、コードの更新が必要になります。

IronPDFとPDFmyURLの比較:機能の比較

アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます:

アスペクトPDFmyURLIronPDF
加工場所外部サーバーローカル(お客様のサーバー)
タイプAPIラッパー.NET ライブラリ
認証リクエストごとのAPIキーワンタイムライセンスキー
ネットワークが必要です。すべての変換初期設定のみ
価格設定モデル月額サブスクリプション(39ドル以上)永久ライセンスあり
料金の制限あり(プランによる)なし
データプライバシー外部送信データデータはローカルのまま
HTML/CSS/JSサポートW3C準拠フルChromiumエンジン
非同期パターン必須(非同期のみ)同期と非同期のオプション
PDF操作制限的フルスイート(マージ、分割、編集)
ユースケース少量のアプリケーション大容量およびエンタープライズ

クイックスタートPDFmyURLからIronPdfへの移行

これらの基本的なステップを踏めば、すぐにでも移行を開始できます。

ステップ 1: NuGet パッケージを置き換える。

PDFmyURLパッケージを削除してください:

# RemovePDFmyURLpackages
dotnet remove package PdfMyUrl
dotnet remove package Pdfcrowd
# RemovePDFmyURLpackages
dotnet remove package PdfMyUrl
dotnet remove package Pdfcrowd
SHELL

IronPDFをインストールします:

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

ステップ 2: 名前空間の更新

PDFmyURLの名前空間をIronPdfに置き換えてください:

// Before: PDFmyURL
using PdfMyUrl;
using Pdfcrowd;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: PDFmyURL
using PdfMyUrl;
using Pdfcrowd;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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のアプローチ:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.convertUrlToFile("https://example.com", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、変換リクエストごとにユーザー名とAPIキーの認証情報を持つHtmlToPdfClientを作成し、URLと出力パスの両方を持つconvertUrlToFile()を呼び出す必要があります。 操作全体は、PDFmyURLのカスタムErrorタイプのtry-catchでラップされなければなりません。

IronPDFはこれを3行に単純化します: ChromePdfRendererを作成し、RenderUrlAsPdf()を呼び出し、組み込みのSaveAs()メソッドを使用します。 ライセンスは、アプリケーションの起動時に一度だけ設定されます。

高度なURL-to-PDFシナリオについては、URL to PDF documentationを参照してください。

HTML文字列をPDFに変換する

HTML文字列変換は、パターンの違いを明確に示します。

PDFmyURLのアプローチ:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            string html = "<html><body><h1>Hello World</h1></body></html>";
            client.convertStringToFile(html, "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLはconvertStringToFile()を使い、HTMLコンテンツを外部サーバーに送って処理します。 IronPDFのRenderHtmlAsPdf()はChromiumレンダリングエンジンを使ってすべてをローカルで処理します。

その他のオプションについては、HTMLからPDFへの変換ガイドをご覧ください。

ページ設定による HTML ファイルの変換

用紙サイズ、向き、余白を設定するには、各ライブラリで異なるアプローチが必要です。

PDFmyURLのアプローチ:

// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
// InstallPDFmyURLSDK
using System;
using Pdfcrowd;

class Example
{
    static void Main()
    {
        try
        {
            var client = new HtmlToPdfClient("username", "apikey");
            client.setPageSize("A4");
            client.setOrientation("landscape");
            client.setMarginTop("10mm");
            client.convertFileToFile("input.html", "output.pdf");
        }
        catch(Error why)
        {
            Console.WriteLine("Error: " + why);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURLは、setPageSize("A4")setMarginTop("10mm")のような文字列パラメータを持つセッターメソッドを使用します。 IronPDFはPdfPaperSize.A4のような列挙型と、ミリメートル単位の余白のための整数値を持つRenderingOptionsを通して、強く型付けされたプロパティを提供します。

PDFmyURLAPIからIronPDFへのマッピングリファレンス

このマッピングは、APIと同等のものを直接示すことで、移行を加速します:

コアクラス

PDFmyURLIronPDFノート
<コード>HtmlToPdfClient</コード<コード>ChromePdfRenderer</コード主な変換クラス
<コード>PdfMyUrlClient</コード<コード>ChromePdfRenderer</コード代替クライアントクラス
APIレスポンスオブジェクト<コード>PdfDocument</コード結果PDFオブジェクト

メソッド

PDFmyURLIronPDFノート
<コード>client.convertUrlToFile(url, file)renderer.RenderUrlAsPdf(url).SaveAs(file)URLからPDFへ
<コード>client.convertStringToFile(html, file)renderer.RenderHtmlAsPdf(html).SaveAs(file)HTML文字列からPDFへ
<コード>client.convertFileToFile(入力, 出力)</コード><コード>client.convertFileToFile(入力)renderer.RenderHtmlFileAsPdf(input).SaveAs(output).ファイルからファイルへ
response.GetBytes()<コード>pdf.BinaryData</コード生のバイトを取得
<コード>response.GetStream()</コード<コード>pdf.Stream</コードストリームとして取得

設定オプション

PDFmyURL (setXxxメソッド)IronPDF (RenderingOptions)ノート
setPageSize("A4").PaperSize = PdfPaperSize.A4.用紙サイズ
setPageSize("文字").PaperSize = PdfPaperSize.Letter.USレター
setOrientation("landscape").PaperOrientation = PdfPaperOrientation.Landscape です。オリエンテーション
setOrientation("ポートレート").PaperOrientation = PdfPaperOrientation.Portrait です。似顔絵
setMarginTop("10mm").MarginTop = 10.上マージン (mm)
setMarginBottom("10mm").MarginBottom = 10.下マージン (mm)
setMarginLeft("10mm").MarginLeft = 10.左マージン (mm)
setMarginRight("10mm").MarginRight = 10.右マージン (mm)
setHeaderHtml(html)を使用してください。.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = html }.ヘッダー
setFooterHtml(html)のようにします。.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = html }.フッター
setJavascriptDelay(500)とします。.RenderDelay = 500.JS 待ち時間 (ms)
setDisableJavascript(true)とします。.EnableJavaScript = false.JSを無効にする
setUsePrintMedia(true)を設定してください。.CssMediaType = PdfCssMediaType.Print です。CSSの印刷

認証の比較

PDFmyURLIronPDF
new HtmlToPdfClient("username", "apikey").IronPdf.License.LicenseKey = "LICENSE-KEY".
リクエストごとのAPIキースタートアップで1回のみ
すべての通話に必要グローバルに1回設定

一般的な移行の問題と解決策

課題 1: API キーとライセンス キーの比較

PDFmyURL:変換リクエストごとに認証情報が必要です。

解決策:アプリケーションの起動時にIronPDFライセンスを一度だけ設定します:

// PDFmyURL: API key per request
var client = new HtmlToPdfClient("username", "apikey");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
// PDFmyURL: API key per request
var client = new HtmlToPdfClient("username", "apikey");

// IronPDF: One-time license at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Set once, typically in Program.cs or Startup.cs
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

課題2:ヘッダー/フッターのプレースホルダー構文

PDFmyURL:{page_number}{total_pages}プレースホルダーを使用します。

解決策: IronPDFのプレースホルダー形式に更新する:

// PDFmyURL: "Page {page_number} of {total_pages}"
// IronPDF: "Page {page} of {total-pages}"
// PDFmyURL: "Page {page_number} of {total_pages}"
// IronPDF: "Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

第3号:非同期パターン

PDFmyURL:非同期/待機パターンが必要です。

ソリューション: IronPDFはデフォルトで同期です; 必要であれば、asyncをラップしてください:

// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
// PDFmyURL: Native async
var response = await client.ConvertUrlAsync(url);

// IronPDF: Sync by default, wrap for async
var pdf = await Task.Run(() => renderer.RenderUrlAsPdf(url));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

課題 4: エラー処理

PDFmyURL:カスタムのPdfcrowd.Error例外タイプを使用しています。

解決策: IronPDF例外のキャッチブロックを更新する:

// PDFmyURL: Pdfcrowd.Error
catch (Pdfcrowd.Error e) { ... }

// IronPDF: Standard exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
// PDFmyURL: Pdfcrowd.Error
catch (Pdfcrowd.Error e) { ... }

// IronPDF: Standard exceptions
catch (IronPdf.Exceptions.IronPdfRenderingException e) { ... }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

第5号:構成パターン

PDFmyURL:文字列値を持つセッターメソッドを使用します。

解決策: 強く型付けされたRenderingOptionsプロパティを使用してください:

// PDFmyURL: Setter methods
client.setPageSize("A4");
client.setOrientation("landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// PDFmyURL: Setter methods
client.setPageSize("A4");
client.setOrientation("landscape");

// IronPDF: Properties with enums
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFmyURL移行チェックリスト

マイグレーション前のタスク

コードベースを監査して、すべてのPDFmyURLの使用法を特定してください:

# FindPDFmyURLusage
grep -r "PdfMyUrl\|Pdfcrowd\|HtmlToPdfClient" --include="*.cs" .

# Find API key references
grep -r "apikey\|api-key\|api_key" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "{page_number}\|{total_pages}" --include="*.cs" .
# FindPDFmyURLusage
grep -r "PdfMyUrl\|Pdfcrowd\|HtmlToPdfClient" --include="*.cs" .

# Find API key references
grep -r "apikey\|api-key\|api_key" --include="*.cs" --include="*.json" --include="*.config" .

# Find placeholder patterns to migrate
grep -r "{page_number}\|{total_pages}" --include="*.cs" .
SHELL

現在使用されている設定オプションを文書化すること。 環境変数を使用してライセンスキーの保存を計画する。

コード更新タスク

1.PDFmyURL/Pdfcrowd NuGetパッケージの削除 2.IronPdf NuGetパッケージをインストールする 3.すべての名前空間インポートの更新 4.APIキー認証をIronPDFライセンスキーに置き換える 5.セッターメソッドをRenderingOptionsプロパティに変換する 6.ヘッダ/フッタのプレースホルダ構文を更新 ({page_number}{page}, {total_pages}{total-pages}) 7.IronPDF例外タイプのエラー処理コードの更新 8.起動時にIronPDFライセンスの初期化を追加する

移行後のテスト

移行後、これらの点を検証してください:

  • PDF出力の品質が期待に沿うかテスト
  • 非同期パターンが正しく動作することを確認する
  • レンダリングの忠実度を以前の出力と比較する
  • すべてのテンプレートバリエーションが正しくレンダリングされることをテストする
  • ページ設定の検証(サイズ、向き、余白)
  • Linuxサーバーにデプロイする場合は、Linuxの依存関係をインストールしてください。

IronPDFに移行する主な利点

PDFmyURLからIronPDFに移行することで、いくつかの重要な利点が得られます:

完全なプライバシー:ドキュメントがサーバーから離れることはありません。 すべての処理はローカルで行われるため、機密性の高いコンテンツに対するデータセキュリティの懸念はありません。

1回限りのコスト:永久ライセンスオプションにより、定期的なサブスクリプション料金が不要になります。 使用量に関係なく、毎月の支払いはもう必要ありません。

オフライン機能:初期設定後、インターネットなしで動作します。ネットワークの停止はPDF生成に影響しません。

レート制限なし:スロットリングの心配なく、無制限のドキュメントを処理します。

低レイテンシ: ネットワークのオーバーヘッドがないため、特に大量のアプリケーションでは変換が速くなります。

フルコントロール:サードパーティのサービスではなく、あなたが処理環境をコントロールします。

最新のChromiumエンジン:Chromeブラウザと同じレンダリングエンジンで、CSS3とJavaScriptをフルサポート。

アクティブ開発:2026年まで.NET 10とC# 14の採用が増加する中、IronPDFの定期的なアップデートは現在と将来の.NETバージョンとの互換性を保証します。

結論

PDFmyURLは、少量のPDF生成のニーズに対して、わかりやすいクラウドベースのソリューションを提供します。 しかし、外部処理モデルは、プライバシーの懸念、継続的なコスト、および多くのプロダクション・アプリケーションが受け入れることができない依存リスクを生じさせます。

IronPdfは機密データをサーバー上に保持するローカル処理を提供し、永続ライセンスでサブスクリプション料金を排除し、最新のChromiumベースのレンダリングエンジンを提供します。移行パスは簡単です: NuGetパッケージを置き換え、セッターメソッドを強く型付けされたプロパティに更新し、プレースホルダーの構文を調整します。

IronPDFの無料トライアルで今すぐ移行を開始し、ローカルPDF処理の利点を体験してください。

包括的な実装ガイダンスについては、IronPDFドキュメントチュートリアルをご覧ください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。