移行ガイド C#で火PechkinからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る TuesPechkin は、wkhtmltopdfライブラリのスレッドセーフなラッパーとして機能し、.NET開発者がHTMLをPDFに変換するのを何年も支援してきました。 しかし、基礎となるwkhtmltopdf技術は2015年を最後に更新されず、2022年12月に正式に放棄されました。このため、開発チームがもはや無視できない重大なセキュリティ、安定性、レンダリングの制限が生じています。 このガイドでは、.NET開発者が移行を検討するために、ステップバイステップの手順、コード比較、実用的な例を用いて、TuesPechkinからIronPDFへの完全な移行パスを提供します。 なぜ今TuesuesPechkinから移行するのか セキュリティを重視する開発チームにとって、TuesPechkinからの移行はもはやオプションではありません。 基礎となるwkhtmltopdfライブラリには、パッチが適用されていない重大な脆弱性があり、今後も修正されることはないでしょう。 重大なセキュリティ脆弱性:CVE-2022-35583 属性 価値 CVE ID CVE-2022-35583 厳しさ 重要(9.8/10)。 アタックベクター ネットワーク <ステータス パッチは適用されません。 影響を受ける言語 すべての火曜日Pechkinバージョン wkhtmltopdfのメンテナは、セキュリティの脆弱性を修正しないと明言しています。火曜日を使用するすべてのアプリケーションは、Server-Side Request Forgery (SSRF) 攻撃に永久にさらされます。 攻撃の仕組み ユーザーが提供したHTMLを処理する際、攻撃者は悪意のあるコンテンツを注入することができます: <iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe> <img src="http://internal-admin-panel:8080/api/users?export=all" /> <iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe> <img src="http://internal-admin-panel:8080/api/users?export=all" /> HTML これにより、攻撃者はAWS/Azure/GCPのメタデータエンドポイントにアクセスし、内部APIデータを盗み、内部ネットワークをポートスキャンし、機密設定を流出させることができます。 テクノロジーの危機 tuespechkinは、Qt WebKit 4.8を使用するwkhtmltopdfをラップしています。 これにより、以下が実現されます。 Flexboxをサポートしていません CSSグリッドのサポートなし 壊れたJavaScriptの実行 ES6+はサポートしません。 安定性の危機 宣伝されているThreadSafeConverterを使用しても、高負荷時に火曜日がクラッシュします: // ❌火曜日- "ThreadSafeConverter" still crashes var converter = new TuesPechkin.ThreadSafeConverter( new TuesPechkin.RemotingToolset<PechkinBindings>()); // Under high load, you'll see: // System.AccessViolationException: Attempted to read or write protected memory // Process terminated unexpectedly // Converter hangs indefinitely // ❌火曜日- "ThreadSafeConverter" still crashes var converter = new TuesPechkin.ThreadSafeConverter( new TuesPechkin.RemotingToolset<PechkinBindings>()); // Under high load, you'll see: // System.AccessViolationException: Attempted to read or write protected memory // Process terminated unexpectedly // Converter hangs indefinitely $vbLabelText $csharpLabel IronPDFとTuesPechkinの比較:機能の比較 アーキテクチャの違いを理解することは、技術的な意思決定者が移行への投資を評価するのに役立ちます: フィーチャー 火曜日 IronPDF ライセンス フリー(MITライセンス) 商用 スレッドセーフティ マニュアル管理が必要 ネイティブサポート 通貨について 制限あり、負荷でクラッシュする可能性あり 堅牢で、高い並行性に対応 開発分野 2015年最終更新 積極的かつ継続的な改善 使いやすさ 複雑なセットアップ ユーザーフレンドリーなガイド ドキュメント 基本 豊富な例文 セキュリティ。 ❌ 重大な CVEs ✅ 既知の脆弱性はありません。 HTMLからPDFへ ⚠️ 時代遅れの WebKit ✅ モダンChromium CSS3について ❌ 部分的 フルサポート フレックスボックス/グリッド ❌ 未対応 フルサポート JavaScript(ジャバスクリプト ⚠️ 信頼できない ✅ ES6+のフルバージョン PDF操作 ❌ 利用不可 フル デジタル署名。 ❌ 利用不可 フル PDF/Aコンプライアンス ❌ 利用不可 フル フォーム入力 ❌ 利用不可 フル ウォーターマーク。 ❌ 利用不可 フル マージ/スプリット ❌ 利用不可 フル クイックスタートTuesPechkinからIronPDFへの移行 これらの基本的なステップを踏めば、すぐにでも移行を開始できます。 ステップ 1: NuGet パッケージを置き換える すべての火曜日パッケージを削除します: # Remove火曜日and all related packages dotnet remove package TuesPechkin dotnet remove package TuesPechkin.Wkhtmltox.Win64 dotnet remove package TuesPechkin.Wkhtmltox.Win32 # Remove火曜日and all related packages dotnet remove package TuesPechkin dotnet remove package TuesPechkin.Wkhtmltox.Win64 dotnet remove package TuesPechkin.Wkhtmltox.Win32 SHELL IronPDFをインストールします: # Install IronPDF dotnet add package IronPdf # Install IronPDF dotnet add package IronPdf SHELL ステップ 2: ネイティブ バイナリの削除 プロジェクトからこれらのファイルとフォルダを削除してください: wkhtmltox.dll wkhtmltopdf.exe すべてのwkhtmlto*ファイル TuesPechkin.Wkhtmltoxフォルダ ステップ 3: 名前空間の更新 TuesPechkin名前空間をIronPdf名前空間に置き換えてください: // Before (TuesPechkin) using TuesPechkin; using TuesPechkin.Wkhtmltox.Win64; // After (IronPDF) using IronPdf; // Before (TuesPechkin) using TuesPechkin; using TuesPechkin.Wkhtmltox.Win64; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel ステップ 4: ライセンスの初期化 アプリケーション起動時のライセンス初期化を追加します: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel コード移行の例 HTML を PDF に変換する 最も一般的な使用例は、これらの.NET PDFライブラリの複雑さの違いを示しています。 TuesPechkinのアプローチ: // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); string html = "<html><body><h1>Hello World</h1></body></html>"; byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument { Objects = { new ObjectSettings { HtmlText = html } } }); File.WriteAllBytes("output.pdf", pdfBytes); } } // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); string html = "<html><body><h1>Hello World</h1></body></html>"; byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument { Objects = { new ObjectSettings { HtmlText = html } } }); File.WriteAllBytes("output.pdf", pdfBytes); } } $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></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // 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></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel TuesPechkinバージョンでは、複雑な初期化チェーンを持つStandardConverterを作成する必要があります:RemotingToolset、Win64EmbeddedDeployment、TempFolderDeploymentです。 また、手動でバイトをファイルに書き込む必要があります。 IronPDFはこの儀式を完全に排除します。 ChromePdfRendererを作成し、HTMLをレンダリングして保存します。 コードは自己文書化されており、デプロイツールセットやプラットフォーム固有のバイナリ管理について理解する必要はありません。 高度なHTMLからPDFへのシナリオについては、HTMLからPDFへの変換ガイドをご覧ください。 URLをPDFに変換する URLからPDFへの変換でも、同様の複雑さの違いが見られます。 TuesPechkinのアプローチ: // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument { Objects = { new ObjectSettings { PageUrl = "https://www.example.com" } } }); File.WriteAllBytes("webpage.pdf", pdfBytes); } } // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument { Objects = { new ObjectSettings { PageUrl = "https://www.example.com" } } }); File.WriteAllBytes("webpage.pdf", pdfBytes); } } $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("webpage.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("webpage.pdf"); } } $vbLabelText $csharpLabel TuesPechkinは、HtmlToPdfDocumentの中に入れ子になったObjectSettings.PageUrlを使用しています。 IronPDFは意図を明確に表現する専用のRenderUrlAsPdfメソッドを提供します。 認証とカスタムヘッダーオプションについては、URL to PDF documentationを参照してください。 カスタム レンダリング設定 ページの向き、用紙サイズ、余白には、さまざまな設定アプローチが必要です。 TuesPechkinのアプローチ: // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); string html = "<html><body><h1>Custom PDF</h1></body></html>"; var document = new HtmlToPdfDocument { GlobalSettings = { オリエンテーション= GlobalSettings.PdfOrientation.Landscape, PaperSize = GlobalSettings.PdfPaperSize.A4, Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 } }, Objects = { new ObjectSettings { HtmlText = html } } }; byte[] pdfBytes = converter.Convert(document); File.WriteAllBytes("custom.pdf", pdfBytes); } } // NuGet: Install-Package TuesPechkin using TuesPechkin; using System.IO; class Program { static void Main() { var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); string html = "<html><body><h1>Custom PDF</h1></body></html>"; var document = new HtmlToPdfDocument { GlobalSettings = { オリエンテーション= GlobalSettings.PdfOrientation.Landscape, PaperSize = GlobalSettings.PdfPaperSize.A4, Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 } }, Objects = { new ObjectSettings { HtmlText = html } } }; byte[] pdfBytes = converter.Convert(document); File.WriteAllBytes("custom.pdf", pdfBytes); } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Engines.Chrome; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape; renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.MarginTop = 10; renderer.RenderingOptions.MarginBottom = 10; string html = "<html><body><h1>Custom PDF</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("custom.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Engines.Chrome; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape; renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.MarginTop = 10; renderer.RenderingOptions.MarginBottom = 10; string html = "<html><body><h1>Custom PDF</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("custom.pdf"); } } $vbLabelText $csharpLabel TuesPechkin は設定を、ドキュメント全体のオプションのためのグローバル設定と、コンテンツのための ObjectSettings に分けています。 IronPdfはすべてをRenderingOptionsに統合し、明確で発見しやすいプロパティ名にしています。 TuesPechkinAPIからIronPDFへのマッピングリファレンス このマッピングは、APIと同等のものを直接示すことで、移行を加速します: 火曜日 IronPDF ノート StandardConverter|ChromePdfRenderer` 複雑な初期化なし ThreadSafeConverter ChromePdfRenderer ネイティブのスレッドセーフ HtmlToPdfDocument メソッドのパラメータ ドキュメントオブジェクト不要 グローバル設定 レンダリングオプション 設定オプション ObjectSettings.HtmlText RenderHtmlAsPdf(html)を使用してください。 直接レンダリング ObjectSettings.PageUrl RenderUrlAsPdf(url)を使用してください。 URLレンダリング GlobalSettings.PaperSize RenderingOptions.PaperSize 用紙サイズ GlobalSettings.Orientation RenderingOptions.PaperOrientation オリエンテーション マージン設定 MarginTop、MarginBottomなど。 個々のマージン特性 `[ページ]プレースホルダ {ページ}プレースホルダ ページ番号構文 [toPage]プレースホルダ {総ページ数}プレースホルダ 総ページ数 RemotingToolset` 不要 デプロイメント管理なし Win64EmbeddedDeployment(ウィン64エンベデッドデプロイメント) 不要 プラットフォームバイナリなし TempFolderDeployment(テンプフォルダーデプロイメント 不要 テンポラリフォルダ管理なし 一般的な移行の問題と解決策 課題1: 複雑な初期化コード 問題: TuesPechkinは、デプロイツールセットによる複雑なコンバーターのセットアップを必要とします。 ソリューション: IronPDFはシンプルです: // Before (TuesPechkin) var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); // After (IronPDF) var renderer = new ChromePdfRenderer(); // That's it! // Before (TuesPechkin) var converter = new StandardConverter( new RemotingToolset<PdfToolset>( new Win64EmbeddedDeployment( new TempFolderDeployment()))); // After (IronPDF) var renderer = new ChromePdfRenderer(); // That's it! $vbLabelText $csharpLabel 問題 2: スレッドセーフティのクラッシュ 問題火曜日の ThreadSafeConverter は、高負荷時に AccessViolationException でクラッシュします。 ソリューション: IronPDFはネイティブのスレッドセーフを備えています: //IronPDFis inherently thread-safe var renderer = new ChromePdfRenderer(); // Use from any thread without crashes //IronPDFis inherently thread-safe var renderer = new ChromePdfRenderer(); // Use from any thread without crashes $vbLabelText $csharpLabel 課題3: ページ番号のプレースホルダーの構文 問題: TuesPechkinは[page]と[toPage]プレースホルダを使用しています。 解決策: IronPDFのプレースホルダー構文を更新しました: // Before (TuesPechkin) "Page [page] of [toPage]" // After (IronPDF) "Page {page} of {total-pages}" // Before (TuesPechkin) "Page [page] of [toPage]" // After (IronPDF) "Page {page} of {total-pages}" $vbLabelText $csharpLabel 課題4: CSSレイアウトが壊れています 問題:wkhtmltopdfがQt WebKit 4.8を使用しているため、FlexboxとGridレイアウトがTuesPechkinで動作しません。 ソリューション: IronPDFで適切なモダンCSSを使用してください: // Remove table-based workarounds, use modern CSS var html = @" <div style='display: flex; justify-content: space-between;'> <div>Left</div> <div>Right</div> </div>"; var pdf = renderer.RenderHtmlAsPdf(html); // Works correctly with Chromium! // Remove table-based workarounds, use modern CSS var html = @" <div style='display: flex; justify-content: space-between;'> <div>Left</div> <div>Right</div> </div>"; var pdf = renderer.RenderHtmlAsPdf(html); // Works correctly with Chromium! $vbLabelText $csharpLabel 第5号:ネイティブ・バイナリ管理 問題 TuesPechkinは、プラットフォーム固有のwkhtmltopdfバイナリとパス設定を必要とします。 ソリューション: IronPDFはNuGetを通してすべての依存関係を処理します: # Just install the package dotnet add package IronPdf # No wkhtmltopdf binaries needed # Just install the package dotnet add package IronPdf # No wkhtmltopdf binaries needed SHELL TuesPechkin移行チェックリスト マイグレーション前のタスク コードベースを監査し、すべてのTuesPechkinの使用法を特定します: grep -r "using TuesPechkin" --include="*.cs" . grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" . grep -r "using TuesPechkin" --include="*.cs" . grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" . SHELL 現在のGlobalSettings設定(用紙サイズ、向き、余白)を文書化する。 ObjectSettings の設定を文書化します(HTML コンテンツ、URL)。 変換のためのヘッダー/フッター実装を特定する。 すべてのwkhtmltopdfバイナリを検索して削除してください。 コード更新タスク 1.TuesPechkin NuGet パッケージの削除 2.wkhtmltopdfネイティブバイナリの削除 3.IronPdf NuGetパッケージをインストールする 4.using文をTuesPechkinからIronPdfに更新してください。 5.起動時のライセンスキー初期化の追加 6.コンバーターを ChromePdfRenderer に置き換えてください。 7.GlobalSettingsをRenderingOptionsに変換してください。 8.ObjectSettingsをメソッドのパラメータに変換する 9.個々のプロパティへのマージン設定の更新 10.ヘッダー/フッター構文をHTMLベースのHtmlHeaderFooterに更新する。 11.ページのプレースホルダの構文を修正 ([page] → {page}) 12.すべてのデプロイメント/ツールセットコードを削除する 移行後のテスト 移行後、これらの点を検証してください: すべてのユニットテストを実行する スレッドセーフなシナリオをテストする(IronPDFはクラッシュすることなくマルチスレッドに対応します) PDF出力品質の比較(Chromiumの方が正確にレンダリングされる) CSSレンダリングの検証(FlexboxとGridが動作するようになりました) JavaScriptの実行テスト(ES6+に対応しました) ヘッダー/フッターレンダリングのテスト パフォーマンステストのバッチ操作 wkhtmltopdfバイナリが残っていないことを確認するためのセキュリティスキャン IronPDFに移行する主な利点 TuespechkinからIronPDFに移行することで、いくつかの重要な利点が得られます: セキュリティ:CVE-2022-35583およびその他の wkhtmltopdf の脆弱性が排除されました。 IronPdfのChromiumエンジンは定期的にセキュリティアップデートを受けています。 ネイティブ スレッド セーフティ:複雑なThreadSafeConverter構成は不要になりました。 もう AccessViolationException が負荷でクラッシュすることはありません。 IronPdfは自動的に並行処理を行います。 最新のレンダリング エンジン: CSS3、Flexbox、Grid、ES6 + JavaScript を完全にサポートします。 PDFは、モダンブラウザで表示されるコンテンツとまったく同じようにレンダリングされます。 簡素化された展開:プラットフォーム固有のバイナリを管理する必要はありません。 RemotingToolset、Win64EmbeddedDeployment、TempFolderDeployment のセレモニーはありません。 NuGetパッケージをインストールするだけです。 積極的な開発: .NET 10 と C# 14 の採用が 2026 年まで増加するにつれて、IronPDF の定期的な更新により、現在のおよび将来の .NET バージョンとの互換性が確保されます。 拡張機能:火曜日は HTML を PDF にのみ変換します。 IronPdfはPDF操作、電子署名、PDF/Aコンプライアンス、フォーム入力、透かし、結合/分割操作を追加します。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター 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#でVectSharpからIronPDFに移行する方法C#でTextControlから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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む