移行ガイド Foxit PDF SDKからIronPdfへの移行:(.NET ガイド) カーティス・チャウ 公開日:2026年1月11日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る Foxit PDF SDK からIronPDFに移行すると、複雑なエンタープライズ向けの API が最新の開発者に優しいパターンに置き換えられ、.NET PDF 生成ワークフローが簡素化されます。 このガイドでは、不要なコードを削除し、コードベース全体で PDF 操作を容易にする、完全なステップバイステップの移行パスを提供します。 なぜFoxit PDF SDKからIronPDFに移行するのですか? フォクシットPDFの課題 Foxit PDF SDK は強力なエンタープライズ レベルのライブラリですが、非常に複雑なため、開発が遅くなる可能性があります。 1.複雑なライセンス システム:複数の製品、SKU、ライセンス タイプ (開発者ごと、サーバーごと、OEM など) があるため、プロジェクトに適切なオプションを選択するのが困難です。 2.エンタープライズ価格設定:価格は大規模な組織向けに調整されており、小規模なチームや個人の開発者にとっては高額になる可能性があります。 3.手動インストール:Foxit PDF SDKでは、手動の DLL 参照またはプライベート NuGet フィードが必要です。シンプルなパブリック NuGet パッケージは提供されていません。 4.冗長 API: Library.Initialize()によるライブラリの初期化、エラー コードのチェック、および明示的なLibrary.Release()呼び出しにより、すべての操作に実質的な定型句が追加されます。 5.個別の HTML 変換アドオン: HTML から PDF への変換には追加のアドオンを購入する必要があります。これは基本 SDK には含まれていません。 6.複雑な構成:設定には、複数のプロパティを持つ詳細なオブジェクト構成 (例: HTML2PDFSettingData ) が必要です。 C++ の伝統: API パターンは C++ の起源を反映しており、最新の C# アプリケーションでは自然な感じがしません。 Foxit PDFとIronPDFの比較</font アスペクト Foxit PDF SDK IronPDF インストール マニュアルDLL/プライベートフィード シンプルなNuGetパッケージ ライセンス 企業向けの複雑な翻訳 透明で、あらゆるサイズに対応 初期設定 Library.Initialize(sn, key). ライセンスキーを一度設定 エラー処理 エラーコード列挙型 .NET 標準の例外 HTMLからPDFへ 別途アドオン購入 内蔵Chromiumエンジン APIスタイル C#の遺産、冗長性 最新の.NETパターン リソースのクリーンアップ マニュアル Close()/Release()。 IDisposable/automatic ドキュメンテーション エンタープライズドキュメントポータル 公開チュートリアル。 費用便益分析 Foxit PDF からIronPDFに移行すると、よりシンプルな API による複雑さの軽減、直感的な方法による開発の高速化、async/await および LINQ サポートを含む最新の .NET 互換性、既存の Web スキルを使用する HTML ファーストのアプローチ、個別のアドオン購入なしの包括的な機能など、開発上の明確なメリットが得られます。 2025年、2026年までの.NET 10とC# 14の採用を計画している場合、IronPDFはPDF生成のための将来的な基盤を提供します。 始める前に 前提条件 .NET環境: IronPDFは.NET Framework 4.6.2以降、.NET Core 3.1以降、.NET 5/6/7/8/9以降をサポートしています。 NuGetアクセス: NuGetからパッケージをインストールできることを確認する 3.ライセンスキー: ironpdf.comから本番環境で使用するIronPDFライセンスキーを取得します。 プロジェクトのバックアップ # Create a backup branch git checkout -b pre-ironpdf-migration git add . git commit -m "Backup beforeFoxit PDF SDKtoIronPDFmigration" # Create a backup branch git checkout -b pre-ironpdf-migration git add . git commit -m "Backup beforeFoxit PDF SDKtoIronPDFmigration" SHELL すべての Foxit PDF の使用法を特定する # Find allFoxit PDF SDKreferences grep -r "foxit\|PDFDoc\|PDFPage\|Library.Initialize\|Library.Release" --include="*.cs" --include="*.csproj" . # Find Foxit DLL references find . -name "*.csproj" | xargs grep -l "Foxit\|fsdk" # Find allFoxit PDF SDKreferences grep -r "foxit\|PDFDoc\|PDFPage\|Library.Initialize\|Library.Release" --include="*.cs" --include="*.csproj" . # Find Foxit DLL references find . -name "*.csproj" | xargs grep -l "Foxit\|fsdk" SHELL ドキュメント現在の機能 移行前のカタログ 使用している Foxit PDF の機能(HTML 変換、注釈、フォーム、セキュリティ) ライセンスキーの場所と初期化コード カスタム構成と設定 ErrorCode 列挙型を使用したエラー処理パターン クイック スタート マイグレーション ステップ 1: NuGet パッケージを更新する #Foxit PDF SDKtypically requires manual removal of DLL references # Check your .csproj for Foxit references and remove them # Install IronPDF dotnet add package IronPdf #Foxit PDF SDKtypically requires manual removal of DLL references # Check your .csproj for Foxit references and remove them # Install IronPDF dotnet add package IronPdf SHELL .csprojにFoxit PDFの参照がある場合は、手動で削除してください:。 <Reference Include="fsdk_dotnet"> <HintPath>..\libs\Foxit\fsdk_dotnet.dll</HintPath> </Reference> <Reference Include="fsdk_dotnet"> <HintPath>..\libs\Foxit\fsdk_dotnet.dll</HintPath> </Reference> XML ステップ 2: 名前空間の更新 // Before (Foxit PDF) using foxit; using foxit.common; using foxit.common.fxcrt; using foxit.pdf; using foxit.pdf.annots; using foxit.addon.conversion; // After (IronPDF) using IronPdf; using IronPdf.Rendering; using IronPdf.Editing; // Before (Foxit PDF) using foxit; using foxit.common; using foxit.common.fxcrt; using foxit.pdf; using foxit.pdf.annots; using foxit.addon.conversion; // After (IronPDF) using IronPdf; using IronPdf.Rendering; using IronPdf.Editing; $vbLabelText $csharpLabel ステップ3: IronPDFを初期化する このFoxit PDFの移行における最も重要な改善点の1つは、複雑な初期化とクリーンアップのパターンをなくしたことです: // Before (Foxit PDF) string sn = "YOUR_SERIAL_NUMBER"; string key = "YOUR_LICENSE_KEY"; ErrorCode error_code = Library.Initialize(sn, key); if (error_code != ErrorCode.e_ErrSuccess) { throw new Exception("Failed to initialize Foxit PDF SDK"); } // ... your code ... Library.Release(); // Don't forget this! // After (IronPDF) IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"; // That's it! No Release() needed // Before (Foxit PDF) string sn = "YOUR_SERIAL_NUMBER"; string key = "YOUR_LICENSE_KEY"; ErrorCode error_code = Library.Initialize(sn, key); if (error_code != ErrorCode.e_ErrSuccess) { throw new Exception("Failed to initialize Foxit PDF SDK"); } // ... your code ... Library.Release(); // Don't forget this! // After (IronPDF) IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"; // That's it! No Release() needed $vbLabelText $csharpLabel ステップ 4: 基本的な変換パターン // Before (Foxit PDF) Library.Initialize(sn, key); HTML2PDFSettingData settings = new HTML2PDFSettingData(); settings.page_width = 612.0f; settings.page_height = 792.0f; using (HTML2PDF html2pdf = new HTML2PDF(settings)) { html2pdf.Convert(htmlContent, "output.pdf"); } Library.Release(); // After (IronPDF) var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); // Before (Foxit PDF) Library.Initialize(sn, key); HTML2PDFSettingData settings = new HTML2PDFSettingData(); settings.page_width = 612.0f; settings.page_height = 792.0f; using (HTML2PDF html2pdf = new HTML2PDF(settings)) { html2pdf.Convert(htmlContent, "output.pdf"); } Library.Release(); // After (IronPDF) var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); $vbLabelText $csharpLabel 完全な API リファレンス 名前空間マッピング Foxit PDF 名前空間 IronPDF 同等物 ノート foxit IronPdf(IronPDF 主な名前空間 foxit.common IronPdf(IronPDF 一般的なタイプ foxit.common.fxcrt 該当なし 低レベル(不要) foxit.pdf IronPdf(IronPDF PDFドキュメント操作 foxit.pdf.annots IronPdf.Editing 注釈 foxit.addon.conversion IronPdf.レンダリング HTML/画像変換 コア クラス マッピング Foxit PDF SDK クラス IronPDF 同等物 ノート ライブラリ 該当なし IronPDFは以下を自動管理します。 PDFDoc PdfDocument 主なドキュメントクラス PDFページ PdfDocument.Pages[i] ページへのアクセス HTML2PDF ChromePdfRenderer HTML変換 テキストページ pdf.ExtractTextFromPage(i)のようにします。 テキスト抽出 ウォーターマーク TextStamper</code> /ImageStamper` ウォーターマーク。 セキュリティ セキュリティ設定 PDFセキュリティ フォーム pdf.Form フォームフィールド メタデータ pdf.MetaData 文書のメタデータ PDFDocのメソッド Foxit PDFDoc IronPDF PdfDocument ノート new PDFDoc(path) とします。 PdfDocument.FromFile(パス)。 ファイルから読み込む doc.LoadW(パスワード) PdfDocument.FromFile(path, password). パスワード保護 doc.GetPageCount() pdf.PageCount ページ数プロパティ doc.GetPage(インデックス) pdf.Pages[index] インデックスでページを取得 doc.SaveAs(path, flags). pdf.SaveAs(path)のようにします。 ドキュメントを保存 doc.Close() pdf.Dispose()またはusing文 クリーンアップ doc.InsertDocument()。 PdfDocument.Merge()を使用してください。 ドキュメントをマージする. HTML2PDF / 変換 Foxit HTML2PDF IronPDF 同等物 ノート new HTML2PDFSettingData(). new ChromePdfRenderer(). レンダラーの作成 settings.page_width。 RenderingOptions.PaperSize 標準サイズ settings.page_height RenderingOptions.SetCustomPaperSize()。 カスタムサイズ html2pdf.Convert(html, path)</code>|renderer.RenderHtmlAsPdf(html)`. HTML文字列 html2pdf.ConvertFromURL(url, path) renderer.RenderUrlAsPdf(url)のようにします。 URL変換。 ウォーターマーク設定 Foxit ウォーターマーク IronPDF 同等物 ノート new Watermark(doc, text, font, size, color). new TextStamper(). テキスト透かし WatermarkSettings.position|VerticalAlignment+HorizontalAlignment` です。 ポジション WatermarkSettings.rotation ローテーション 回転角度 WatermarkSettings.opacity Opacity 0~100パーセント watermark.InsertToAllPages(). pdf.ApplyStamp(stamper)pdf.ApplyStamp(stamper) 応募対象 コード例 例1: HTMLからPDFへの変換 以前(Foxit PDF SDK): // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFConversion; using System; class Program { static void Main() { Library.Initialize("sn", "key"); HTML2PDFSettingData settingData = new HTML2PDFSettingData(); settingData.page_width = 612.0f; settingData.page_height = 792.0f; settingData.page_mode = HTML2PDFPageMode.e_HTML2PDFPageModeSinglePage; using (HTML2PDF html2pdf = new HTML2PDF(settingData)) { html2pdf.Convert("<html><body><h1>Hello World</h1></body></html>", "output.pdf"); } Library.Release(); } } // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFConversion; using System; class Program { static void Main() { Library.Initialize("sn", "key"); HTML2PDFSettingData settingData = new HTML2PDFSettingData(); settingData.page_width = 612.0f; settingData.page_height = 792.0f; settingData.page_mode = HTML2PDFPageMode.e_HTML2PDFPageModeSinglePage; using (HTML2PDF html2pdf = new HTML2PDF(settingData)) { html2pdf.Convert("<html><body><h1>Hello World</h1></body></html>", "output.pdf"); } Library.Release(); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>"); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>"); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel IronPdfのアプローチは15行以上の設定コードをわずか4行に減らします。 ライブラリの初期化、明示的なクリーンアップ、複雑な設定オブジェクトはありません。 HTMLレンダリングのオプションについては、HTML to PDF documentationを参照してください。 例2: URLからPDFへの変換 以前(Foxit PDF SDK): // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFConversion; using System; class Program { static void Main() { Library.Initialize("sn", "key"); HTML2PDFSettingData settingData = new HTML2PDFSettingData(); settingData.page_width = 612.0f; settingData.page_height = 792.0f; settingData.page_mode = HTML2PDFPageMode.e_HTML2PDFPageModeSinglePage; using (HTML2PDF html2pdf = new HTML2PDF(settingData)) { html2pdf.ConvertFromURL("https://www.example.com", "output.pdf"); } Library.Release(); } } // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFConversion; using System; class Program { static void Main() { Library.Initialize("sn", "key"); HTML2PDFSettingData settingData = new HTML2PDFSettingData(); settingData.page_width = 612.0f; settingData.page_height = 792.0f; settingData.page_mode = HTML2PDFPageMode.e_HTML2PDFPageModeSinglePage; using (HTML2PDF html2pdf = new HTML2PDF(settingData)) { html2pdf.ConvertFromURL("https://www.example.com", "output.pdf"); } Library.Release(); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel IronPdfの内蔵ChromiumエンジンはJavaScriptの実行、CSSレンダリング、ダイナミックコンテンツを自動的に処理します。 URLからPDFへの変換の詳細については、こちらをご覧ください。 例3: 透かしを追加する 以前(Foxit PDF SDK): // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFDoc; using System; class Program { static void Main() { Library.Initialize("sn", "key"); using (PDFDoc doc = new PDFDoc("input.pdf")) { doc.Load(""); Watermark watermark = new Watermark(doc, "Confidential", new Font(Font.StandardID.e_StdIDHelvetica), 48.0f, 0xFF0000FF); WatermarkSettings settings = new WatermarkSettings(); settings.flags = Watermark.e_WatermarkFlagASPageContents; settings.position = Watermark.Position.e_PosCenter; settings.rotation = -45.0f; settings.opacity = 0.5f; watermark.SetSettings(settings); watermark.InsertToAllPages(); doc.SaveAs("output.pdf", PDFDoc.SaveFlags.e_SaveFlagNoOriginal); } Library.Release(); } } // NuGet: Install-Package Foxit.SDK using Foxit.SDK; using Foxit.SDK.Common; using Foxit.SDK.PDFDoc; using System; class Program { static void Main() { Library.Initialize("sn", "key"); using (PDFDoc doc = new PDFDoc("input.pdf")) { doc.Load(""); Watermark watermark = new Watermark(doc, "Confidential", new Font(Font.StandardID.e_StdIDHelvetica), 48.0f, 0xFF0000FF); WatermarkSettings settings = new WatermarkSettings(); settings.flags = Watermark.e_WatermarkFlagASPageContents; settings.position = Watermark.Position.e_PosCenter; settings.rotation = -45.0f; settings.opacity = 0.5f; watermark.SetSettings(settings); watermark.InsertToAllPages(); doc.SaveAs("output.pdf", PDFDoc.SaveFlags.e_SaveFlagNoOriginal); } Library.Release(); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Editing; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); pdf.ApplyWatermark(new TextStamper() { Text = "Confidential", FontSize = 48, Opacity = 50, Rotation = -45, VerticalAlignment = VerticalAlignment.Middle, HorizontalAlignment = HorizontalAlignment.Center }); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Editing; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); pdf.ApplyWatermark(new TextStamper() { Text = "Confidential", FontSize = 48, Opacity = 50, Rotation = -45, VerticalAlignment = VerticalAlignment.Middle, HorizontalAlignment = HorizontalAlignment.Center }); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel IronPdfのTextStamperは、個別の設定オブジェクトや手動でのページ反復の代わりに、プロパティベースの直感的な設定を提供します。 その他のオプションについては、watermarking documentationの全文をご覧ください。 例4: ヘッダーとフッターのあるPDFへのURL 以前(Foxit PDF SDK): using foxit; using foxit.addon.conversion; class Program { static void Main() { Library.Initialize("sn", "key"); try { HTML2PDFSettingData settings = new HTML2PDFSettingData(); settings.page_width = 595.0f; // A4 settings.page_height = 842.0f; settings.page_margin_top = 100.0f; settings.page_margin_bottom = 100.0f; //Foxit PDF SDKhas limited header/footer support // Often requires post-processing or additional code using (HTML2PDF html2pdf = new HTML2PDF(settings)) { html2pdf.ConvertFromURL("https://www.example.com", "webpage.pdf"); } } finally { Library.Release(); } } } using foxit; using foxit.addon.conversion; class Program { static void Main() { Library.Initialize("sn", "key"); try { HTML2PDFSettingData settings = new HTML2PDFSettingData(); settings.page_width = 595.0f; // A4 settings.page_height = 842.0f; settings.page_margin_top = 100.0f; settings.page_margin_bottom = 100.0f; //Foxit PDF SDKhas limited header/footer support // Often requires post-processing or additional code using (HTML2PDF html2pdf = new HTML2PDF(settings)) { html2pdf.ConvertFromURL("https://www.example.com", "webpage.pdf"); } } finally { Library.Release(); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait for JS // Built-in header/footer support renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center; font-size:12pt;'>Company Report</div>", DrawDividerLine = true }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right; font-size:10pt;'>Page {page} of {total-pages}</div>", DrawDividerLine = true }; var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait for JS // Built-in header/footer support renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center; font-size:12pt;'>Company Report</div>", DrawDividerLine = true }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right; font-size:10pt;'>Page {page} of {total-pages}</div>", DrawDividerLine = true }; var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } $vbLabelText $csharpLabel IronPDFはネイティブのヘッダーとフッターをHTMLスタイルとダイナミックなページ番号プレースホルダーでサポートします。 例5: PDF のセキュリティと暗号化 以前(Foxit PDF SDK): using foxit; using foxit.pdf; class Program { static void Main() { Library.Initialize("sn", "key"); try { using (PDFDoc doc = new PDFDoc("input.pdf")) { doc.LoadW(""); StdSecurityHandler securityHandler = new StdSecurityHandler(); securityHandler.Initialize( StdSecurityHandler.EncryptAlgorithm.e_CipherAES, "user_password", "owner_password", PDFDoc.Permission.e_PermPrint | PDFDoc.Permission.e_PermModify, 128); doc.SetSecurityHandler(securityHandler); doc.SaveAs("encrypted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNoOriginal); } } finally { Library.Release(); } } } using foxit; using foxit.pdf; class Program { static void Main() { Library.Initialize("sn", "key"); try { using (PDFDoc doc = new PDFDoc("input.pdf")) { doc.LoadW(""); StdSecurityHandler securityHandler = new StdSecurityHandler(); securityHandler.Initialize( StdSecurityHandler.EncryptAlgorithm.e_CipherAES, "user_password", "owner_password", PDFDoc.Permission.e_PermPrint | PDFDoc.Permission.e_PermModify, 128); doc.SetSecurityHandler(securityHandler); doc.SaveAs("encrypted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNoOriginal); } } finally { Library.Release(); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 using IronPdf; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); // Set passwords pdf.SecuritySettings.OwnerPassword = "owner_password"; pdf.SecuritySettings.UserPassword = "user_password"; // Set permissions pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.EditAll; pdf.SecuritySettings.AllowUserCopyPasteContent = true; pdf.SecuritySettings.AllowUserAnnotations = true; pdf.SaveAs("encrypted.pdf"); } } using IronPdf; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); // Set passwords pdf.SecuritySettings.OwnerPassword = "owner_password"; pdf.SecuritySettings.UserPassword = "user_password"; // Set permissions pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.EditAll; pdf.SecuritySettings.AllowUserCopyPasteContent = true; pdf.SecuritySettings.AllowUserAnnotations = true; pdf.SaveAs("encrypted.pdf"); } } $vbLabelText $csharpLabel パフォーマンスの考慮事項 ChromePdfRendererを再利用してください Foxit PDF への移行時に最適なパフォーマンスを得るには、ChromePdfRenderer インスタンスを再利用してください: // GOOD - Reuse renderer (thread-safe) public class PdfService { private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer(); public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData; } // BAD - Creates new instance each time public byte[] GenerateBad(string html) { var renderer = new ChromePdfRenderer(); // Wasteful return renderer.RenderHtmlAsPdf(html).BinaryData; } // GOOD - Reuse renderer (thread-safe) public class PdfService { private static readonly ChromePdfRenderer _renderer = new ChromePdfRenderer(); public byte[] Generate(string html) => _renderer.RenderHtmlAsPdf(html).BinaryData; } // BAD - Creates new instance each time public byte[] GenerateBad(string html) { var renderer = new ChromePdfRenderer(); // Wasteful return renderer.RenderHtmlAsPdf(html).BinaryData; } $vbLabelText $csharpLabel ユニット変換ヘルパー Foxit PDF SDK はポイントを使用しています; IronPDFはミリメートルを使用しています。 移行時にこのヘルパーを使用してください: public static class UnitConverter { public static double PointsToMm(double points) => points * 0.352778; public static double MmToPoints(double mm) => mm / 0.352778; public static double InchesToMm(double inches) => inches * 25.4; } // Usage: Convert Foxit's 72 points (1 inch) toIronPDFmillimeters renderer.RenderingOptions.MarginTop = UnitConverter.PointsToMm(72); // ~25.4mm public static class UnitConverter { public static double PointsToMm(double points) => points * 0.352778; public static double MmToPoints(double mm) => mm / 0.352778; public static double InchesToMm(double inches) => inches * 25.4; } // Usage: Convert Foxit's 72 points (1 inch) toIronPDFmillimeters renderer.RenderingOptions.MarginTop = UnitConverter.PointsToMm(72); // ~25.4mm $vbLabelText $csharpLabel 適切なリソースの処分 // GOOD - Using statement for automatic cleanup using (var pdf = PdfDocument.FromFile("large.pdf")) { string text = pdf.ExtractAllText(); } // pdf is disposed automatically // GOOD - Using statement for automatic cleanup using (var pdf = PdfDocument.FromFile("large.pdf")) { string text = pdf.ExtractAllText(); } // pdf is disposed automatically $vbLabelText $csharpLabel トラブルシューティング 問題 1: Library.Initialize() が見つかりません 問題: Library.Initialize()がIronPDFに存在しません。 解決策:IronPDFはより単純な初期化パターンを使用します。 // Foxit PDF Library.Initialize(sn, key); //IronPDF- just set license key once at startup IronPdf.License.LicenseKey = "YOUR-KEY"; // Foxit PDF Library.Initialize(sn, key); //IronPDF- just set license key once at startup IronPdf.License.LicenseKey = "YOUR-KEY"; $vbLabelText $csharpLabel 課題2: エラーコード処理 問題:コードはErrorCode.e_ErrSuccessをチェックしますが、IronPDF にはこれがありません。 解決策:標準の .NET 例外処理を使用します。 // Foxit PDF ErrorCode err = doc.LoadW(""); if (err != ErrorCode.e_ErrSuccess) { /* handle error */ } // IronPDF try { var pdf = PdfDocument.FromFile("input.pdf"); } catch (IOException ex) { Console.WriteLine($"Failed to load PDF: {ex.Message}"); } // Foxit PDF ErrorCode err = doc.LoadW(""); if (err != ErrorCode.e_ErrSuccess) { /* handle error */ } // IronPDF try { var pdf = PdfDocument.FromFile("input.pdf"); } catch (IOException ex) { Console.WriteLine($"Failed to load PDF: {ex.Message}"); } $vbLabelText $csharpLabel 問題 3: PDFDoc.Close() が見つかりません 問題: doc.Close()メソッドがIronPDFに存在しません。 解決策: Dispose()またはusingステートメントを使用します。 // Foxit PDF doc.Close(); // IronPDF pdf.Dispose(); // or better: wrap in using statement // Foxit PDF doc.Close(); // IronPDF pdf.Dispose(); // or better: wrap in using statement $vbLabelText $csharpLabel 移行チェックリスト 移行前 使用されているすべてのFoxit PDF SDK機能をインベントリします ドキュメントのライセンスキーの場所 すべてのLibrary.Initialize()とLibrary.Release()の呼び出しに注意してください カスタム設定(ページ サイズ、余白など)を一覧表示します ErrorCode を使用してエラー処理パターンを識別する バージョン管理にプロジェクトをバックアップする IronPDFライセンスキーを取得する パッケージの移行 .csproj からFoxit PDF SDKDLL 参照を削除します プライベートNuGetフィード構成を削除します IronPdf NuGet パッケージをインストールします: dotnet add package IronPdf 名前空間のインポートを更新する 起動時にIronPDFライセンスキーを設定する コードの移行 Library.Initialize()とLibrary.Release()の呼び出しを削除します ErrorCodeチェックを try/catch に置き換える -PDFDocPdfDocument`に置き換える -`HTML2PDFChromePdfRenderer`に置き換える ページアクセスをGetPage(i)からPages[i]に更新する SaveAs(path, flags)をSaveAs(path)に置き換えます Close()をDispose()または using ステートメントに置き換えます TextStamperを使用するように透かしコードを更新します 単位をポイントからミリメートルに変換する テスティング HTMLからPDFへの出力が期待通りであることを確認する PDFの読み込みとテキスト抽出をテストする マージ機能の検証 透かしの外観を確認する セキュリティ/暗号化機能をテストする フォームフィールドの操作を検証する パフォーマンステスト 移行後 -Foxit PDF SDKDLLを削除する Foxit関連の設定ファイルを削除する ドキュメントの更新 未使用のヘルパーコードをクリーンアップする 移行。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む ActivePDFからIronPDFへの移行:(.NET ガイド)fo.netからIronPDFへの移行方法
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む