移行ガイド C#でBitMiracle Docotic PDFからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年1月11日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る BitMiracle Docotic PDFは、100%マネージドコードアーキテクチャと広範なプログラムPDF操作機能で知られる、定評ある.NET PDFライブラリです。 しかし、モジュール式のアドオン構造であるため、HTMLからPDFへの変換、レイアウト機能、その他の機能には個別のパッケージが必要であり、プロジェクト管理とライセンスが複雑になっています。 この包括的なガイドは、BitMiracle Docotic PDFからIronPDF-ChromiumベースのHTMLレンダリングを内蔵し、すべての機能が単一のNuGetパッケージに含まれる統合.NET PDFライブラリへの移行パスをステップバイステップで提供します。 なぜBitMiracle Docotic PDFからIronPDFに移行するのですか? BitMiracle Docotic PDFは堅牢なPDF操作機能を提供していますが、開発チームがより合理的なアーキテクチャを持つ代替ツールを求めるようになったのには、いくつかの要因があります。 パッケージ アーキテクチャの比較 BitMiracle Docotic PDFは、モジュール式のアドオンアプローチを採用しており、完全な機能を実現するには複数のパッケージが必要です: アスペクト BitMiracle Docotic PDF IronPDF HTMLからPDFへ。 別のアドオン(HtmlToPdf)が必要です。 組み込みのコア機能 パッケージ構造 コア+複数のアドオン 単一のNuGetパッケージ ライセンスモデル アドオンライセンス 含まれる機能 APIの複雑さ アドオンごとに名前空間を分ける 統一API HTMLエンジン Chromium (アドオン経由) クロミウム(組み込み) コミュニティサイズ 小規模 より多くのリソース ドキュメント 技術リファレンス 豊富なチュートリアル フィーチャー パリティ どちらのライブラリも包括的なPDF機能をサポートしています: フィーチャー BitMiracle Docotic PDF IronPDF ゼロからPDFを作成 ✅ ✅ HTMLからPDFへ ✅ (アドオンが必要) ✅ (ビルトイン) URLからPDFへ ✅ (アドオンが必要) ✅ (ビルトイン) PDF操作 ✅ ✅ テキスト抽出 ✅ ✅ マージ/スプリット ✅ ✅ デジタル署名 ✅ ✅ 暗号化 ✅ ✅ フォーム入力 ✅ ✅ PDF/A準拠 ✅ ✅ アプローチの主な違い BitMiracle Docotic PDFは座標ポジショニング(canvas.DrawString(x, y, text))によるキャンバスベースの描画を使用し、IronPDFはレイアウトとポジショニングにHTML/CSSを活用します。 これは、ウェブ技術に精通した開発者のコンテンツ作成を簡素化するパラダイムシフトを意味します。 移行前の準備 前提条件 あなたの環境がこれらの要件を満たしていることを確認してください: .NET Framework 4.6.2+または.NET Core 3.1 / .NET 5-9 Visual Studio 2019+またはC#拡張機能付きVS Code NuGetパッケージマネージャへのアクセス IronPDFライセンスキー (ironpdf.com にて無料トライアル可能) BitMiracleのDocotic PDFの使用状況を監査する ソリューションディレクトリで以下のコマンドを実行し、すべてのDocotic.Pdf参照を特定します: # Find all Docotic.Pdf usages in your codebase grep -r "using BitMiracle.Docotic" --include="*.cs" . grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" . # Find NuGet package references grep -r "Docotic.Pdf" --include="*.csproj" . # Find all Docotic.Pdf usages in your codebase grep -r "using BitMiracle.Docotic" --include="*.cs" . grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" . # Find NuGet package references grep -r "Docotic.Pdf" --include="*.csproj" . SHELL 予想される画期的な変更 変更 BitMiracle Docotic PDF IronPDF インパクト HTMLレンダリング。 HtmlToPdfアドオンが必要です。 内蔵 アドオンパッケージの削除 ページ索引。 0ベース(`ページ[0]</code) 0ベース(ページ[0]</code) 変更不要 座標系。 左下オリジン HTML/CSSフロー 位置決めにCSSを使用 キャンバス描画。 PdfCanvas.DrawText()を使用してください。 HTMLマークアップ パラダイムシフト テキスト抽出。 page.GetText()|pdf.ExtractAllText()`を使用してください。 メソッド名の変更 ドキュメントの読み込み。 new PdfDocument(path). PdfDocument.FromFile(パス)。 コンストラクタ → 静的メソッド セービング。 document.Save(パス)を実行します。 pdf.SaveAs(path)のようにします。 メソッド名の変更 処分 IDisposableパターン 不要 よりシンプルなリソース管理 ステップごとの移行プロセス ステップ 1: NuGet パッケージを更新する BitMiracle Docotic PDFパッケージを削除し、IronPDFをインストールしてください: # Remove Docotic.Pdf packages dotnet remove package BitMiracle.Docotic.Pdf dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf dotnet remove package BitMiracle.Docotic.Pdf.Layout # Install IronPDF dotnet add package IronPdf # Remove Docotic.Pdf packages dotnet remove package BitMiracle.Docotic.Pdf dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf dotnet remove package BitMiracle.Docotic.Pdf.Layout # Install IronPDF dotnet add package IronPdf SHELL ステップ 2: 名前空間参照の更新 BitMiracle Docotic PDFの名前空間をIronPDFに置き換えてください: // Remove these using BitMiracle.Docotic.Pdf; using BitMiracle.Docotic.Pdf.Layout; using BitMiracle.Docotic.Pdf.HtmlToPdf; // Add this using IronPdf; // Remove these using BitMiracle.Docotic.Pdf; using BitMiracle.Docotic.Pdf.Layout; using BitMiracle.Docotic.Pdf.HtmlToPdf; // Add this using IronPdf; $vbLabelText $csharpLabel ステップ 3: ライセンスの設定 // Add at application startup (Program.cs or Global.asax) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Add at application startup (Program.cs or Global.asax) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel 完全な API 移行のリファレンス ドキュメント操作 タスク BitMiracle Docotic PDF IronPDF 空のドキュメントを作成 new PdfDocument(). new PdfDocument(). ファイルから読み込む new PdfDocument(path). PdfDocument.FromFile(パス)。 ストリームから読み込む PdfDocument.Load(stream)を実行します。 `PdfDocument.FromStream(stream)PdfDocument.FromStream(stream) バイトから読み込む PdfDocument.Load(bytes). PdfDocument.FromBinaryData(bytes)PdfDocument.FromBinaryData(bytes) ファイルに保存 document.Save(パス)を実行します。 pdf.SaveAs(path)のようにします。 ページ数を取得 document.PageCount|pdf.PageCount` 閉じる/破棄する document.Dispose()。 不要 HTMLからPDFへの変換 タスク BitMiracle Docotic PDF(HtmlToPdfアドオン) IronPDF HTML文字列からPDFへ HtmlConverter.Create(html).ToPdf()。 renderer.RenderHtmlAsPdf(html). HTMLファイルからPDFへ HtmlConverter.Create(新しいUri(filePath)).ToPdf()。 renderer.RenderHtmlFileAsPdf(path)のようにします。 URLからPDFへ HtmlConverter.Create(新しいUri(url)).ToPdf()。 renderer.RenderUrlAsPdf(url)のようにします。 ページサイズの設定 options.PageSize = PageSize.A4. renderer.RenderingOptions.PaperSize=PdfPaperSize.A4。 余白の設定 options.PageMargins = new Margins(20). renderer.RenderingOptions.MarginTop = 20. マージと分割の操作 タスク BitMiracle Docotic PDF IronPDF ドキュメントのマージ doc1.Append(doc2)を追加します。 PdfDocument.Merge(pdf1, pdf2). 文書の分割 document.CopyPage(index)を新しいdocにコピーする。 pdf.CopyPages(start, end). コード移行の例 HTMLからPDFへの変換 最も一般的な操作は、IronPDFが提供する大幅な簡素化を示しています。 BitMiracle Docotic PDFの実装:。 // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf = new PdfDocument()) { string html = "<html><body><h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p></body></html>"; pdf.CreatePage(html); pdf.Save("output.pdf"); } Console.WriteLine("PDF created successfully"); } } // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf = new PdfDocument()) { string html = "<html><body><h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p></body></html>"; pdf.CreatePage(html); pdf.Save("output.pdf"); } Console.WriteLine("PDF created successfully"); } } $vbLabelText $csharpLabel IronPDFの実装:。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This isHTMLからPDFへconversion.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } $vbLabelText $csharpLabel IronPDFはusing文の要件を排除し、Chromiumベースのレンダリング機能を明確に示す専用のChromePdfRendererクラスを提供します。 その他のHTML変換オプションについては、HTML to PDF documentationを参照してください。 複数のPDFをマージする BitMiracle Docotic PDFの実装:。 // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf1 = new PdfDocument("document1.pdf")) using (var pdf2 = new PdfDocument("document2.pdf")) { pdf1.Append(pdf2); pdf1.Save("merged.pdf"); } Console.WriteLine("PDFs merged successfully"); } } // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf1 = new PdfDocument("document1.pdf")) using (var pdf2 = new PdfDocument("document2.pdf")) { pdf1.Append(pdf2); pdf1.Save("merged.pdf"); } Console.WriteLine("PDFs merged successfully"); } } $vbLabelText $csharpLabel IronPDFの実装:。 // NuGet: Install-Package IronPdf using IronPdf; using System; using System.Collections.Generic; class Program { static void Main() { var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 }); merged.SaveAs("merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; using System.Collections.Generic; class Program { static void Main() { var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 }); merged.SaveAs("merged.pdf"); Console.WriteLine("PDFs merged successfully"); } } $vbLabelText $csharpLabel IronPdfの静的なMergeメソッドは複数のドキュメントを直接受け取ることができ、反復的なAppendパターンよりもクリーンなAPIを提供します。 その他のオプションについては、 PDF 結合のドキュメントを参照してください。 テキスト抽出 BitMiracle Docotic PDFの実装:。 // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf = new PdfDocument("document.pdf")) { string allText = ""; foreach (var page in pdf.Pages) { allText += page.GetText(); } Console.WriteLine("Extracted text:"); Console.WriteLine(allText); } } } // NuGet: Install-Package Docotic.Pdf using BitMiracle.Docotic.Pdf; using System; class Program { static void Main() { using (var pdf = new PdfDocument("document.pdf")) { string allText = ""; foreach (var page in pdf.Pages) { allText += page.GetText(); } Console.WriteLine("Extracted text:"); Console.WriteLine(allText); } } } $vbLabelText $csharpLabel IronPDFの実装:。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("document.pdf"); string allText = pdf.ExtractAllText(); Console.WriteLine("Extracted text:"); Console.WriteLine(allText); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("document.pdf"); string allText = pdf.ExtractAllText(); Console.WriteLine("Extracted text:"); Console.WriteLine(allText); } } $vbLabelText $csharpLabel IronPdfはテキスト抽出を複数行のループから単一のメソッド呼び出しに減らします。 その他の抽出オプションについては、テキスト抽出のドキュメントを参照してください。 パスワード保護と暗号化 IronPDFの実装:。 using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>"); // Set security pdf.SecuritySettings.UserPassword = "userPassword"; pdf.SecuritySettings.OwnerPassword = "ownerPassword"; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("protected.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>"); // Set security pdf.SecuritySettings.UserPassword = "userPassword"; pdf.SecuritySettings.OwnerPassword = "ownerPassword"; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("protected.pdf"); $vbLabelText $csharpLabel 包括的なセキュリティ オプションについては、暗号化のドキュメントを参照してください。 ヘッダーとフッター IronPDFの実装:。 using IronPdf; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align:center; font-size:12px;'> Company Header - Confidential </div>", DrawDividerLine = true, MaxHeight = 30 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align:center; font-size:10px;'> Page {page} of {total-pages} </div>", DrawDividerLine = true, MaxHeight = 25 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>"); pdf.SaveAs("with_headers.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align:center; font-size:12px;'> Company Header - Confidential </div>", DrawDividerLine = true, MaxHeight = 30 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter { HtmlFragment = @" <div style='text-align:center; font-size:10px;'> Page {page} of {total-pages} </div>", DrawDividerLine = true, MaxHeight = 25 }; var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>"); pdf.SaveAs("with_headers.pdf"); $vbLabelText $csharpLabel IronPDFは{page}や{total-pages}のようなプレースホルダートークンをサポートしています。 その他のオプションについては、headers and footers documentationを参照してください。 重要な移行に関する注意事項 キャンバスから HTML へのパラダイムシフト BitMiracle Docotic PDFのキャンバスベースの描画アプローチは、CSSポジショニングでHTMLに変換する必要があります: BitMiracleドコティックPDFパターン: var canvas = pdfPage.Canvas; canvas.DrawString(50, 50, "Hello, World!"); var canvas = pdfPage.Canvas; canvas.DrawString(50, 50, "Hello, World!"); $vbLabelText $csharpLabel IronPDFパターン: var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>"; var pdf = renderer.RenderHtmlAsPdf(html); var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>"; var pdf = renderer.RenderHtmlAsPdf(html); $vbLabelText $csharpLabel 同じページのインデックス どちらのライブラリも0ベースのインデックスを使用します(Pages[0]は最初のページです)。 処分不要 IronPDFはメモリ管理のためのusing文を必要とせず、コード構造を簡素化します: //BitMiracle Docotic PDF- disposal required using (var pdf = new PdfDocument("input.pdf")) { // operations } //IronPDF- disposal optional var pdf = PdfDocument.FromFile("input.pdf"); // operations - no using statement needed //BitMiracle Docotic PDF- disposal required using (var pdf = new PdfDocument("input.pdf")) { // operations } //IronPDF- disposal optional var pdf = PdfDocument.FromFile("input.pdf"); // operations - no using statement needed $vbLabelText $csharpLabel 非同期サポート BitMiracle Docotic PDFのHtmlToPdfアドオンは、あらゆるところで非同期パターンを必要とします。 IronPdfは同期と非同期の両方のメソッドをサポートしています: // Synchronous var pdf = renderer.RenderHtmlAsPdf(html); // Asynchronous var pdf = await renderer.RenderHtmlAsPdfAsync(html); // Synchronous var pdf = renderer.RenderHtmlAsPdf(html); // Asynchronous var pdf = await renderer.RenderHtmlAsPdfAsync(html); $vbLabelText $csharpLabel .NETコアの統合 IronPDFパターン: [ApiController] [Route("[controller]")] public class PdfController : ControllerBase { [HttpGet("generate")] public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>"); return File(pdf.BinaryData, "application/pdf", "report.pdf"); } [HttpGet("generate-async")] public async Task<IActionResult> GeneratePdfAsync() { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>"); return File(pdf.Stream, "application/pdf", "report.pdf"); } } [ApiController] [Route("[controller]")] public class PdfController : ControllerBase { [HttpGet("generate")] public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>"); return File(pdf.BinaryData, "application/pdf", "report.pdf"); } [HttpGet("generate-async")] public async Task<IActionResult> GeneratePdfAsync() { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>"); return File(pdf.Stream, "application/pdf", "report.pdf"); } } $vbLabelText $csharpLabel 移行後のチェックリスト コードの移行が完了したら、以下を確認してください: すべてのユニットテストを実行して、PDF生成が正しく機能することを確認します。 PDF出力品質を比較します(IronPDFのChromiumエンジンでは若干異なるレンダリングが行われる場合がありますが、通常はより優れています) テキスト抽出の精度を検証する フォーム入力機能をテストする 該当する場合はデジタル署名を検証する パフォーマンステストのバッチ操作 すべてのターゲット環境でテストする CI/CDパイプラインを更新する Docotic.Pdf ライセンスファイルを削除する PDFインフラストラクチャの将来性を確保する .NET 10が目前に迫り、C# 14が新しい言語機能を導入する中、統一されたアーキテクチャを持つPDFライブラリを選択することで、依存関係の管理が簡素化され、一貫した機能の利用が可能になります。 IronPdfのシングルパッケージのアプローチは、プロジェクトが2025年や2026年に拡張されても、複数のアドオンバージョンの互換性を追跡する必要がないことを意味します。 その他のリソース IronPDFドキュメント. HTMLからPDFへのチュートリアル。 APIリファレンス. NuGetパッケージ。 ライセンスオプション。 BitMiracle Docotic PDFからIronPDFに移行することで、ChromiumベースのHTMLレンダリング機能を提供しながら、複数のアドオンパッケージを管理する複雑さを解消できます。 キャンバスベースの描画からHTML/CSSポジショニングへの移行は、ほとんどの.NET開発者がすでに持っているWeb開発スキルを活用し、より保守性の高いPDF生成コードを実現します。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でComPDFKitからIronPDFに移行する方法C#でAspose.PDFから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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む