移行ガイド C#でPeachPDFからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る PeachPDFからIronPdfに移行することで、包括的な機能、活発な開発、プロフェッショナルなサポートを備えたエンタープライズグレードのPDF生成にアクセスできます。 このガイドは、基本的なHTMLからPDFへのワークフローを、最新のChromiumレンダリング、高度なセキュリティオプション、および広範な操作機能を備えたフル機能のPDFソリューションに変換する、完全でステップバイステップの移行パスを提供します。 なぜPeachPDFからIronPDFに移行するのか PeachPDFを理解する PeachPDFは、HTMLをPDFに変換する必要がある開発者向けに設計された、.NETエコシステムの比較的新しい参入者です。 ライブラリとして、PeachPDFは純粋な.NET実装を約束し、外部プロセスに依存しないことで差別化を図り、.NETがサポートされているプラットフォーム間でシームレスに統合できることを保証します。 この特徴により、PeachPDF は、軽量でマネージドなライブラリソリューションをお探しのプロジェクトにとって魅力的な選択肢となります。 PeachPDFは、その可能性にもかかわらず、まだ開発中であり、エキサイティングな可能性と注目すべき制限の両方が浮き彫りになっています。 PeachPDFは、純粋な.NET Coreを採用しているため、多様な環境での簡単な導入が約束されており、魅力的です。 しかし、ユーザーベースやコミュニティ主導のサポートが少ないため、採用が限られることにもつながります。 PeachPDFの限界について PeachPDF は比較的新しく、あまり知られていない PDF ライブラリで、確立されたソリューションのような成熟度、機能、サポートがありません。 移行する主な理由 1.機能セットの制限:ピーチPDFには、デジタル署名、PDF/A 準拠、高度なテキスト抽出などの高度な機能が欠けています。 2.小規模なコミュニティ:ドキュメント、例、コミュニティ サポートが限られています。 ユーザーベースが小さいため、コミュニティサポートがまばらで、サポートを得たり、広範なドキュメントを見つけることが困難な場合があります。 3.不確かな将来:実績が確立されていない新しいライブラリには、導入リスクが伴います。 4.基本的な HTML サポート:制限された CSS およびJavaScriptレンダリング機能。 5.エンタープライズ サポートなし:プロフェッショナル サポートや SLA オプションはありません。 PeachPDFとIronPDFの比較 機能/特徴 ピーチPDF IronPDF 実装 純粋な.NET 幅広い互換性で管理 ライセンス オープンソース (BSD-3 条) 商用 ユーザーベース 小規模 大規模(40M以上のダウンロード) サポート コミュニティ主導 プロフェッショナルな専任サポート HTMLレンダリング。 基本 完全なChromium CSSサポート 制限的 完全なCSS3 JavaScript(ジャバスクリプト 基本 フルES2024 デジタル署名。 なし はい PDF/Aコンプライアンス なし はい ドキュメント 制限的 広範囲 開発ステータス 開発中 成熟した安定したリリース IronPdfはHTMLからPDFへの変換だけでなく、OCR、透かし、その他の高度な機能をサポートし、より幅広い機能を備えています。 Professionalなサポート体制は、開発者が直面する問題を迅速に解決するための決定的な利点です。 2025年と2026年まで.NET 10とC# 14の採用を計画しているチームに対して、IronPDFは包括的な機能と積極的なメンテナンスを提供し、長期的な安定性と最新の.NETフレームワークとの互換性を保証します。 始める前に 前提条件 .NET 環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+ NuGetアクセス: NuGetパッケージをインストールする機能 IronPDFライセンス: ironpdf.comからライセンスキーを取得します。 NuGetパッケージの変更 # Remove PeachPDF dotnet remove package PeachPDF # Install IronPDF dotnet add package IronPdf # Remove PeachPDF dotnet remove package PeachPDF # 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 PeachPDFの使用方法を特定する # AuditピーチPDFusage in codebase grep -r "using PeachPDF" --include="*.cs" . grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" . # AuditピーチPDFusage in codebase grep -r "using PeachPDF" --include="*.cs" . grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" . SHELL 完全な API リファレンス 名前空間の変更 // Before: PeachPDF using PeachPDF; using System.IO; // After: IronPDF using IronPdf; using IronPdf.Rendering; // Before: PeachPDF using PeachPDF; using System.IO; // After: IronPDF using IronPdf; using IronPdf.Rendering; $vbLabelText $csharpLabel コア API マッピング ピーチPDF IronPDF ノート new HtmlToPdfConverter(). new ChromePdfRenderer(). レンダラーの作成 converter.Convert(html). renderer.RenderHtmlAsPdf(html). HTMLからPDFへ converter.ConvertUrl(url). renderer.RenderUrlAsPdf(url)のようにします。 URLからPDFへ converter.Header renderer.RenderingOptions.HtmlHeader。 ヘッダーコンテンツ コンバーター.フッター renderer.RenderingOptions.HtmlFooter。 フッターコンテンツ File.WriteAllBytes(path, pdf). pdf.SaveAs(path)のようにします。 ファイルを保存 pdf (byte[]) pdf.BinaryData バイト PdfReader.LoadFromFile(path)を実行します。 PdfDocument.FromFile(パス)。 PDFを読み込む document.MergeWith(other)を使用してください。 PdfDocument.Merge(pdfs). PDFのマージ コード移行の例 例1: HTML文字列からPDFへの変換 翻訳前 (PeachPDF): using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = converter.Convert(html); File.WriteAllBytes("output.pdf", pdf); } } using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = converter.Convert(html); File.WriteAllBytes("output.pdf", pdf); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var 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(); var html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel この例は、2つのライブラリの基本的な違いを示しています。 PeachPDFは、バイト[]を返すConvert()メソッドを持つHtmlToPdfConverterを使用しており、保存にはFile.WriteAllBytes()が必要です。 IronPDFは組み込みのSaveAs()メソッドを持つPdfDocumentオブジェクトを返すRenderHtmlAsPdf()を持つChromePdfRendererを使用します。 PeachPDFのバイト配列が最終的な出力であるのに対し、IronPdfのアプローチの主な利点は、保存する前にPdfDocumentオブジェクトをさらに操作(透かしの追加、結合、セキュリティ設定)できることです。 IronPDFのアプローチは、よりきれいな構文と最新の.NETアプリケーションとのより良い統合を提供します。 包括的な例については、HTML to PDF documentationを参照してください。 例2: URLからPDFへの変換 翻訳前 (PeachPDF): using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var url = "https://www.example.com"; var pdf = converter.ConvertUrl(url); File.WriteAllBytes("webpage.pdf", pdf); } } using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var url = "https://www.example.com"; var pdf = converter.ConvertUrl(url); File.WriteAllBytes("webpage.pdf", pdf); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var url = "https://www.example.com"; var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var url = "https://www.example.com"; var pdf = renderer.RenderUrlAsPdf(url); pdf.SaveAs("webpage.pdf"); } } $vbLabelText $csharpLabel PeachPDFはConvertUrl()を使用し、IronPDFはRenderUrlAsPdf()を使用します。 IronPDFのメソッド名はより説明的で、URLがPDFとしてレンダリングされることを明示的に示しています。 どちらのライブラリもURLからPDFへの変換を同様に扱いますが、IronPDFの完全なChromiumエンジンは複雑なCSSやJavaScriptを含む最新のウェブページの優れたレンダリングを提供します。 詳しくは、チュートリアルをご覧ください。 例3: ヘッダーとフッターを追加する 翻訳前 (PeachPDF): using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); converter.Header = "<div style='text-align:center'>My Header</div>"; converter.Footer = "<div style='text-align:center'>Page {page}</div>"; var html = "<html><body><h1>Document Content</h1></body></html>"; var pdf = converter.Convert(html); File.WriteAllBytes("document.pdf", pdf); } } using PeachPDF; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); converter.Header = "<div style='text-align:center'>My Header</div>"; converter.Footer = "<div style='text-align:center'>Page {page}</div>"; var html = "<html><body><h1>Document Content</h1></body></html>"; var pdf = converter.Convert(html); File.WriteAllBytes("document.pdf", pdf); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" }; var html = "<html><body><h1>Document Content</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("document.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Rendering; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" }; var html = "<html><body><h1>Document Content</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("document.pdf"); } } $vbLabelText $csharpLabel この例は、重要なアーキテクチャの違いを示しています。ピーチPDFはヘッダーとフッターに単純な文字列プロパティ (converter.Header と converter.Footer) を使用します。 IronPDFはRenderingOptions.HtmlHeaderとRenderingOptions.HtmlFooterに割り当てられたHtmlHeaderFooterオブジェクトを使用します。 HtmlHeaderFooterオブジェクトはヘッダー/フッターのサイズをコントロールするためのMaxHeightのような追加プロパティを含むことができます。どちらのライブラリもページ番号のプレースホルダとして{page}を使うことに注意してください。 IronPDFは総ページ数の`{total-pages}もサポートしています。 IronPDFに必要な追加の名前空間に注意してください:using IronPdf.Rendering;はHtmlHeaderFooterクラスに必要です。 重要な移行に関する注意事項 コンバータ クラスの変更 PeachPDFはHtmlToPdfConverterを使用しています; IronPDFはChromePdfRendererを使用しています: // PeachPDF var converter = new HtmlToPdfConverter(); // IronPDF var renderer = new ChromePdfRenderer(); // PeachPDF var converter = new HtmlToPdfConverter(); // IronPDF var renderer = new ChromePdfRenderer(); $vbLabelText $csharpLabel 返品タイプの変更 PeachPDF は byte[] を返します; IronPDFはPdfDocumentを返します: // PeachPDF: Returns byte array byte[] pdf = converter.Convert(html); File.WriteAllBytes("output.pdf", pdf); // IronPDF: Returns PdfDocument object PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // Or get bytes: byte[] bytes = pdf.BinaryData; // PeachPDF: Returns byte array byte[] pdf = converter.Convert(html); File.WriteAllBytes("output.pdf", pdf); // IronPDF: Returns PdfDocument object PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // Or get bytes: byte[] bytes = pdf.BinaryData; $vbLabelText $csharpLabel ヘッダー/フッターのプロパティの変更 // PeachPDF: Simple string properties converter.Header = "<div>Header</div>"; converter.Footer = "<div>Footer</div>"; // IronPDF: HtmlHeaderFooter objects renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div>Header</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div>Footer</div>" }; // PeachPDF: Simple string properties converter.Header = "<div>Header</div>"; converter.Footer = "<div>Footer</div>"; // IronPDF: HtmlHeaderFooter objects renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div>Header</div>" }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div>Footer</div>" }; $vbLabelText $csharpLabel メソッド名の変更 ピーチPDF IronPDF 変換(html) RenderHtmlAsPdf(html)を使用してください。 ConvertUrl(url)を使用してください。 RenderUrlAsPdf(url)を使用してください。 File.WriteAllBytes() SaveAs() 移行後の新機能 IronPdfに移行すると、PeachPDFでは提供できない機能が得られます: PDFマージ var pdf1 = PdfDocument.FromFile("doc1.pdf"); var pdf2 = PdfDocument.FromFile("doc2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); var pdf1 = PdfDocument.FromFile("doc1.pdf"); var pdf2 = PdfDocument.FromFile("doc2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); $vbLabelText $csharpLabel HTMLによるウォーターマーク var pdf = PdfDocument.FromFile("document.pdf"); pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>"); pdf.SaveAs("watermarked.pdf"); var pdf = PdfDocument.FromFile("document.pdf"); pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>"); pdf.SaveAs("watermarked.pdf"); $vbLabelText $csharpLabel パスワード保護 var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>"); pdf.SecuritySettings.OwnerPassword = "owner123"; pdf.SecuritySettings.UserPassword = "user123"; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint; pdf.SaveAs("protected.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>"); pdf.SecuritySettings.OwnerPassword = "owner123"; pdf.SecuritySettings.UserPassword = "user123"; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint; pdf.SaveAs("protected.pdf"); $vbLabelText $csharpLabel デジタル署名 using IronPdf.Signing; var pdf = PdfDocument.FromFile("document.pdf"); var signature = new PdfSignature("certificate.pfx", "password") { SigningReason = "Document Approval", SigningLocation = "New York" }; pdf.Sign(signature); pdf.SaveAs("signed.pdf"); using IronPdf.Signing; var pdf = PdfDocument.FromFile("document.pdf"); var signature = new PdfSignature("certificate.pfx", "password") { SigningReason = "Document Approval", SigningLocation = "New York" }; pdf.Sign(signature); pdf.SaveAs("signed.pdf"); $vbLabelText $csharpLabel 非同期オペレーション var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>"); pdf.SaveAs("async_output.pdf"); var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>"); pdf.SaveAs("async_output.pdf"); $vbLabelText $csharpLabel 機能比較の概要 フィーチャー ピーチPDF IronPDF HTMLからPDFへ 基本 完全なChromium URLからPDFへ 制限的 はい CSSグリッド/フレックスボックス なし はい JavaScript 制限的 フルES2024 PDFのマージ はい はい PDFの分割 制限的 はい 透かし 制限的 フルHTML ヘッダー/フッター 基本 フルHTML デジタル署名 なし はい PDF/A なし はい フォーム入力 制限的 はい テキスト抽出 基本 はい 画像抽出 なし はい 非同期サポート 制限的 はい クロスプラットフォーム 不明 はい よくある移行の問題 課題1: 異なるAPIパターン 問題: PeachPDFはバイト配列出力のコンバーターパターンを使用しています; IronPDFはPdfDocument出力のレンダラパターンを使用します。 ソリューション: //ピーチPDFpattern var converter = new HtmlToPdfConverter(); var pdf = converter.Convert(html); File.WriteAllBytes(path, pdf); //IronPDFpattern var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(path); //ピーチPDFpattern var converter = new HtmlToPdfConverter(); var pdf = converter.Convert(html); File.WriteAllBytes(path, pdf); //IronPDFpattern var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(path); $vbLabelText $csharpLabel 課題2: 保存方法の違い 問題: PeachPDFはFile.WriteAllBytes()を必要とします; IronPDFにはSaveAs()が組み込まれています。 解決策: File.WriteAllBytes("path", pdf) を pdf.SaveAs("path") に置き換えてください。 課題3: ヘッダー/フッターオブジェクト 問題 PeachPDFは文字列プロパティを使用します; IronPDFはオブジェクトプロパティを使用します。 解決策: HtmlFragmentプロパティを使用して、HtmlHeaderFooterオブジェクトでHTML文字列をラップします。 移行チェックリスト 移行前 コードベースでのPeachPDFの使用状況を監査する カスタム構成を文書化する すべてのヘッダー/フッターの実装をメモします ironpdf.comからIronPDFライセンスキーを取得します まずはIronPDFの試用ライセンスでテストしてください パッケージの変更 PeachPDF NuGetパッケージを削除する IronPdf NuGet パッケージをインストールします: dotnet add package IronPdf コードの変更 名前空間のインポートを更新します ( using PeachPDF; → using IronPdf; ) ヘッダー/フッター機能のためにusing IronPdf.Rendering;を追加します HtmlToPdfConverter ChromePdfRendererに置き換える converter.Convert(html)をrenderer.RenderHtmlAsPdf(html)に置き換えます converter.ConvertUrl(url)をrenderer.RenderUrlAsPdf(url)に置き換えます File.WriteAllBytes(path, pdf)をpdf.SaveAs(path)に置き換えます -converter.Header/Footer`RenderingOptions.HtmlHeader / HtmlFooterオブジェクトに置き換えます アプリケーションの起動時にライセンスの初期化を追加 移行後 HTMLレンダリング品質をテストする 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#でPlaywrightからIronPDFに移行する方法C#でPDFView4NETから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レンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む