移行ガイド C#でScryber.CoreからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る Scryber.CoreからIronPdfへの移行は、カスタムXML/HTMLパースエンジンから、CSS3とJavaScriptをフルサポートした最新のChromiumレンダラーへとPDF生成ワークフローを変換します。 このガイドでは、LGPLライセンスの懸念、独自のテンプレート構文、およびレンダリング機能の制限を排除する、完全で段階的な移行パスを提供します。 Scryber.CoreからIronPDFへ移行する理由 Scryber.Coreについて Scryber.Coreは、C#を使用してHTMLテンプレートをPDFに変換するオープンソースライブラリです。 この機能は、ウェブ開発やHTMLに精通している開発者にとって魅力的なツールとなります。 特定の文書コーディングスキルを必要とする他のPDFソリューションとは異なり、Scryber.CoreはHTMLの汎用性とCSSスタイリング機能を活用し、より直感的なPDF生成アプローチを提供します。 Scryber.Coreは、主にオープンソースの原則に沿った思想と柔軟性により、多くの開発者にとって実行可能な選択肢ですが、制限がないわけではありません。 移行する主な理由 LGPLライセンスに関する懸念: LGPLライセンスでは、ライブラリ自体への変更はすべてオープンソース化する必要があるため、一部の商用アプリケーションでは制限となる可能性があります。 2.カスタムテンプレート構文:独自のバインディング構文は学習曲線を必要とする CSSサポートが限られている:完全なブラウザベースのレンダラーではない 4.コミュニティが小さい:ドキュメントやコミュニティの例が少ない JavaScript実行なし:静的レンダリングのみ 6.複雑な構成: XMLを多用した構成アプローチ 7.限定的な商用サポート: Scryber.Coreは主にコミュニティによってサポートされています Scryber.CoreとIronPDFの比較 アスペクト Scryber.Core IronPDF ライセンス LGPL(制限付き) 商用 レンダリングエンジン カスタム クロム CSSサポート 制限的 完全なCSS3 JavaScript なし フルES2024 テンプレートバインディング 独自のXML 標準(Razorなど) 学習曲線 カスタム構文 標準的なHTML/CSS 非同期サポート 制限的 フル ドキュメンテーション 基本 広範囲 コミュニティサポート 小規模 大規模 商用サポート 制限的 プロフェッショナルサポートを含む IronPDFはScryber.Coreと比較して、エンタープライズグレードの商用サポート、豊富なドキュメント、より大きなコミュニティを提供します。 このライブラリは、LGPLの制限なしに、より柔軟なライセンスオプションを提供するため、商用アプリケーションに最適です。 2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFの最新のChromiumエンジンは現代のウェブ標準との完全な互換性を提供します。 始める前に 前提条件 .NET 環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+ NuGetアクセス: NuGetパッケージをインストールする機能 IronPDFライセンス: ironpdf.comからライセンスキーを取得します。 NuGetパッケージの変更 # Remove Scryber.Core dotnet remove package Scryber.Core # Install IronPDF dotnet add package IronPdf # Remove Scryber.Core dotnet remove package Scryber.Core # Install IronPDF dotnet add package IronPdf SHELL ライセンス構成 // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel 完全な API リファレンス 名前空間の変更 // Before: Scryber.Core using Scryber.Components; using Scryber.Components.Pdf; using Scryber.PDF; using Scryber.Styles; using Scryber.Core; using Scryber.Core.Html; using Scryber.Drawing; // After: IronPDF using IronPdf; using IronPdf.Rendering; // Before: Scryber.Core using Scryber.Components; using Scryber.Components.Pdf; using Scryber.PDF; using Scryber.Styles; using Scryber.Core; using Scryber.Core.Html; using Scryber.Drawing; // After: IronPDF using IronPdf; using IronPdf.Rendering; $vbLabelText $csharpLabel コア API マッピング Scryber.Core IronPDF ノート Document.ParseDocument(html). renderer.RenderHtmlAsPdf(html). HTMLレンダリング Document.ParseTemplate(パス)。 renderer.RenderHtmlFileAsPdf(path)のようにします。 ファイルレンダリング doc.SaveAsPDF(パス)を実行します。 pdf.SaveAs(path)のようにします。 ファイルに保存 doc.SaveAsPDF(stream)</code><code>doc.SaveAsPDF(stream)|pdf.Streamまたはpdf.BinaryData`。 ストリーム/バイトを取得 doc.Info.Title|pdf.MetaData.Title` メタデータ doc.Info.Author pdf.MetaData.Author メタデータ PDFページ pdf.Pages[i] ページへのアクセス PDFLayoutDocument レンダリングオプション レイアウト制御 PDFStyle HTMLのCSS スタイリング doc.RenderOptions.PaperSize(英語 RenderingOptions.PaperSize 用紙サイズ データバインディング ({{値}}) レイザー/文字列補間 テンプレート作成 コード移行の例 例1: 基本的なHTMLからPDFへの変換 ビフォア(Scryber.Core): // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using System.IO; class Program { static void Main() { string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.SaveAsPDF("output.pdf"); } } } // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using System.IO; class Program { static void Main() { string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.SaveAsPDF("output.pdf"); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel この例は、基本的なアーキテクチャの違いを示しています。 Scryber.Coreは、ParseSourceType.DynamicContentパラメータを持つDocument.ParseDocument()を使用してHTMLコンテンツをパースするため、適切な処理のためにusingブロックを必要とします。 ドキュメントは、SaveAsPDF()で保存されます。 IronPdfはChromePdfRendererインスタンスとRenderHtmlAsPdf()を使ってHTMLを直接レンダリングします。 PDFはSaveAs()で保存されます。 IronPDFは自動的にクリーンアップを行います。 包括的な例については、HTML to PDF documentationを参照してください。 例2: URLからPDFへの変換 ビフォア(Scryber.Core): // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using System.Net.Http; using System.Threading.Tasks; class Program { static async Task Main() { using var client = new HttpClient(); string html = await client.GetStringAsync("https://www.example.com"); using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.SaveAsPDF("webpage.pdf"); } } } // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using System.Net.Http; using System.Threading.Tasks; class Program { static async Task Main() { using var client = new HttpClient(); string html = await client.GetStringAsync("https://www.example.com"); using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.SaveAsPDF("webpage.pdf"); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); } } $vbLabelText $csharpLabel Scryber.CoreはURLを直接PDFに変換することはできません。 HttpClient.GetStringAsync()を使用して HTML コンテンツを手動で取得し、ダウンロードした HTML を Document.ParseDocument()で解析する必要があります。 このアプローチでは、カスタムパーサーはスクリプトを実行しないため、JavaScriptの実行、動的コンテンツ、適切なCSSの解決を見逃してしまいます。 IronPDFのRenderUrlAsPdf()メソッドは、Chromiumエンジンによる完全なJavaScript実行とCSSレンダリングを含むプロセス全体を1回の呼び出しで処理します。詳しくはチュートリアルをご覧ください。 例3: カスタムページの設定と余白 ビフォア(Scryber.Core): // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using Scryber.Drawing; using System.IO; class Program { static void Main() { string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"; using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.RenderOptions.Compression = OutputCompressionType.FlateDecode; doc.RenderOptions.PaperSize = PaperSize.A4; doc.SaveAsPDF("custom.pdf"); } } } // NuGet: Install-Package Scryber.Core using Scryber.Core; using Scryber.Core.Html; using Scryber.Drawing; using System.IO; class Program { static void Main() { string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"; using (var doc = Document.ParseDocument(html, ParseSourceType.DynamicContent)) { doc.RenderOptions.Compression = OutputCompressionType.FlateDecode; doc.RenderOptions.PaperSize = PaperSize.A4; doc.SaveAsPDF("custom.pdf"); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("custom.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; string html = "<html><body><h1>Custom PDF</h1><p>With custom margins and settings.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("custom.pdf"); } } $vbLabelText $csharpLabel Scryber.Coreは、doc.RenderOptionsを使用して、ドキュメントのパース後にCompression(OutputCompressionType.FlateDecodeに設定)やPaperSize(PaperSize.A4に設定)のような出力設定を構成します。 IronPDFはレンダリング前にレンダラーでRenderingOptionsを使用します。 プロパティには、PaperSize(PdfPaperSize.A4に設定)、MarginTop、MarginBottomがミリメートル単位で設定されています。 主な違いは、IronPdfは数値プロパティによってマージンを直接制御するのに対し、Scryber.CoreはXMLベースのスタイリングを使用することです。 テンプレート移行パターン 独自のバインディングを標準テンプレートに移行する Scryber.Coreは、独自のXMLベースのバインディング構文を使用しているため、標準的なテンプレートに変換する必要があります: Scryber.Coreバインディング: <pdf:Para text='{{model.Name}}' /> <pdf:Para text='Total: {{model.Total:C}}' /> <pdf:ForEach on='{{model.Items}}'> <pdf:Para text='{{.Name}}: {{.Price}}' /> </pdf:ForEach> <pdf:Para text='{{model.Name}}' /> <pdf:Para text='Total: {{model.Total:C}}' /> <pdf:ForEach on='{{model.Items}}'> <pdf:Para text='{{.Name}}: {{.Price}}' /> </pdf:ForEach> XML C#文字列補間によるIronPDF: var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>"); var html = $@" <p>{model.Name}</p> <p>Total: {model.Total:C}</p> <ul> {string.Join("", items)} </ul>"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); var items = model.Items.Select(i => $"<li>{i.Name}: {i.Price:C}</li>"); var html = $@" <p>{model.Name}</p> <p>Total: {model.Total:C}</p> <ul> {string.Join("", items)} </ul>"; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); $vbLabelText $csharpLabel 主な利点:IronPDFは標準的なC#とHTMLを使用しているため、独自の構文を学ぶのではなく、どのようなテンプレートエンジン(Razor、Handlebarsなど)も使用できます。 ヘッダーとフッターの移行 Scryber.Core(XMLベースのヘッダー/フッター):。 <?xml version='1.0' encoding='utf-8' ?> <pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'> <Pages> <pdf:Section> <Header> <pdf:Para text='Company Report' /> </Header> <Footer> <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' /> </Footer> <Content> <pdf:H1 text='Content Here' /> </Content> </pdf:Section> </Pages> </pdf:Document> <?xml version='1.0' encoding='utf-8' ?> <pdf:Document xmlns:pdf='http://www.scryber.co.uk/schemas/core/release/v1/Scryber.Components.xsd'> <Pages> <pdf:Section> <Header> <pdf:Para text='Company Report' /> </Header> <Footer> <pdf:Para text='Page {{pagenum}} of {{pagetotal}}' /> </Footer> <Content> <pdf:H1 text='Content Here' /> </Content> </pdf:Section> </Pages> </pdf:Document> XML IronPDF(HTMLヘッダー/フッター):。 using IronPdf; var renderer = new ChromePdfRenderer(); // HTML header with full CSS support renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'> Company Report </div>", MaxHeight = 30 }; // HTML footer with page numbers renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; text-align: center; font-size: 10pt;'> Page {page} of {total-pages} </div>", MaxHeight = 25 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>"); pdf.SaveAs("report.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); // HTML header with full CSS support renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; text-align: center; font-size: 12pt; border-bottom: 1px solid #ccc;'> Company Report </div>", MaxHeight = 30 }; // HTML footer with page numbers renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='width: 100%; text-align: center; font-size: 10pt;'> Page {page} of {total-pages} </div>", MaxHeight = 25 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Content Here</h1>"); pdf.SaveAs("report.pdf"); $vbLabelText $csharpLabel Scryber.Coreは、{{pagenum}}や{{pagetotal}}のような独自のプレースホルダを持つXMLベースのヘッダー/フッター定義を必要とします。 IronPDFは{page}と{total-pages}プレースホルダーでヘッダーとフッターに完全なHTML/CSSを使用しています。 移行後の新機能 IronPDFに移行すると、Scryber.Coreでは提供できない機能が得られます: PDFマージ var pdf1 = PdfDocument.FromFile("chapter1.pdf"); var pdf2 = PdfDocument.FromFile("chapter2.pdf"); var pdf3 = PdfDocument.FromFile("chapter3.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2, pdf3); merged.SaveAs("complete_book.pdf"); var pdf1 = PdfDocument.FromFile("chapter1.pdf"); var pdf2 = PdfDocument.FromFile("chapter2.pdf"); var pdf3 = PdfDocument.FromFile("chapter3.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2, pdf3); merged.SaveAs("complete_book.pdf"); $vbLabelText $csharpLabel セキュリティとメタデータ var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>"); // Metadata pdf.MetaData.Title = "My Document"; pdf.MetaData.Author = "John Doe"; pdf.MetaData.Subject = "Annual Report"; pdf.MetaData.Keywords = "report, annual, confidential"; // Security pdf.SecuritySettings.OwnerPassword = "owner123"; pdf.SecuritySettings.UserPassword = "user456"; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights; pdf.SaveAs("protected.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>"); // Metadata pdf.MetaData.Title = "My Document"; pdf.MetaData.Author = "John Doe"; pdf.MetaData.Subject = "Annual Report"; pdf.MetaData.Keywords = "report, annual, confidential"; // Security pdf.SecuritySettings.OwnerPassword = "owner123"; pdf.SecuritySettings.UserPassword = "user456"; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights; pdf.SaveAs("protected.pdf"); $vbLabelText $csharpLabel 機能比較の概要 フィーチャー Scryber.Core IronPDF HTMLからPDFへ 基本 完全なChromium URLからPDFへ 手動フェッチ ネイティブサポート CSSグリッド 制限的 フルサポート フレックスボックス 制限的 フルサポート JavaScript なし フルES2024 データバインディング 独自のXML Razor/ハンドルバーを使用する ヘッダー/フッター XMLベース HTML/CSS PDFのマージ 制限的 内蔵 PDFの分割 なし はい 透かし 基本 フルHTML デジタル署名 なし はい PDF/A なし はい パスワード保護 基本 フル 非同期サポート 制限的 フル クロスプラットフォーム はい はい 移行チェックリスト 移行前 すべての Scryber テンプレートの XML/バインディング パターンを監査します 使用されるドキュメントデータバインディングパターン( {{model.Property}} ) CSS変換が必要なカスタムスタイルを特定する ironpdf.comからIronPDFライセンスキーを取得します コードの更新 Scryber.Core NuGet パッケージを削除する IronPdf NuGetパッケージをインストールする 名前空間のインポートを更新します ( using Scryber.Core; → using IronPdf; ) Document.ParseDocument(html, ParseSourceType.DynamicContent)をrenderer.RenderHtmlAsPdf(html)に置き換えます。 doc.SaveAsPDF()をpdf.SaveAs()に置き換えます XMLテンプレートをHTMLに変換する 独自のバインディングを標準テンプレート(Razor/文字列補間)に置き換える ページ設定を更新:doc.RenderOptions.PaperSize(英語→ renderer.RenderingOptions.PaperSize ヘッダー/フッターを{page}と{total-pages}プレースホルダーを使用してHTML形式に変換します アプリケーションの起動時にライセンスの初期化を追加 テスティング すべてのドキュメントテンプレートをテストする スタイルの一致を確認する(完全な CSS サポートを活用する) 新しいテンプレートを使用してデータバインディングをテストする 改ページの確認 ページ番号プレースホルダー付きのヘッダー/フッターをテストする パフォーマンス比較 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む C#でSelectPdfからIronPDFに移行する方法C#でSAP Crystal ReportsからIronP...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でPdfPigからIronPDFに移行する方法 この完全なC#ガイドでPdfPigからIronPDFへの移行をマスターしてください。読むだけのライブラリから包括的なPDFソリューションに切り替えます。テキスト抽出、HTML変換、メタデータアクセスのコード例を含みます。 詳しく読む