製品比較 IronPDF vs `GrapeCity` PDF: .NET PDF ライブラリの比較 カーティス・チャウ 更新日:10月 26, 2025 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る IronPDF は、.NET アプリケーション用の Chrome V8 レンダリング エンジンを使用した HTML から PDF への生成に特化しており、 GrapeCity PDF は PDF の表示機能と注釈機能に重点を置いているため、最新の Web コンテンツ サポートを備えた完全な PDF 作成機能を必要とする開発者にとって IronPDF は最適な選択肢となります。 このアーティクルでは、2つの.NET PDFライブラリをレビューします: さまざまなデバイスでドキュメントを従来の方法で表示できるファイル タイプです。 IronPDF は、コードを数行入力するだけでPDFドキュメントを作成、読み込み、操作するための.NETライブラリです。 PDF は人気があるにもかかわらず、いくつかの制限があります。 たとえば、受信者が PDF リーダーを必要とせずに、電子メールで PDF で共有することはできません。 PDF は、Word 文書のようにモバイル デバイスでは鮮明に表示されない場合があります。 さらに、Word 文書とは異なり、PDF ではコンテンツを変更または更新するために編集ソフトウェアが必要です。 ただし、PDF ファイルは、PC でも Mac でも、すべてのデバイスで一貫した外観を維持します。 この信頼性により、PDF は JPEG や GIF などの他のドキュメント タイプには見られない標準形式となっています。 この記事では、2つの.NET PDFライブラリをレビューします: IronPDF GrapeCity PDF IronPDF とは何ですか? GrapeCityと比較するとどうですか? IronPDFは、最小限のコードで PDF ドキュメントを作成、読み取り、操作するための機能を提供する .NET ライブラリです。 この記事では、IronPDF を使用して PDF ファイルを作成する方法を説明します。 Visual Studio または C# の基本的な理解と HTML の実用的な知識が必要です。 アプリケーションの作成、コンパイル、実行にはVisual Studio、ロジックとコードの作成にはC#、タイトル、見出し、画像、段落などのPDFファイルのフォーマットにはHTMLが必要です。IronPDFは、 .NET Core 、.NET 5、Framework、Standardを完全にサポートしています。 ASP.NET アプリケーションの場合、IronPDF は Web ページを PDF に変換するためのスムーズな統合を提供します。 基本的な C# と HTML の知識があれば、最小限のコードで C# で PDF ファイルを作成できます。 詳細については、 IronPDF の公式機能ページをご覧ください。 プログラムによる PDF 作成の場合、IronPDF は基本的な HTML 変換を超えた広範な機能を提供します。 私の.NETプロジェクトにIronPDFをインストールする方法は? ソリューションを開発するには、 IronPDF NuGet パッケージをインストールする必要があります。 メニューバーから"プロジェクト"をクリックします。 ドロップダウン メニューから [ NuGet パッケージの管理] を選択します。 詳細な手順については、インストールの概要を参照してください。 このウィンドウには次の内容が表示されます。 NuGet パッケージ マネージャー インターフェイスに IronPdf を検索したときに空の検索結果が表示され、パッケージが利用できないか、接続に問題がある可能性があることを示しています。 "参照"を選択すると、次のウィンドウが表示されます。 NuGet パッケージ マネージャーを使用すると、重要な .NET ライブラリに簡単にアクセスできます。Entity Framework Core と Newtonsoft.Json は、それぞれデータベース操作と JSON 処理用の最も人気のあるパッケージの 1 つです。 検索ボックスに"IronPdf"と入力し、"Enter"を押します。プラットフォーム固有の構成を含む詳細なインストール オプションについては、ドキュメントを参照してください。 次のように表示されます。 NuGet パッケージ マネージャー インターフェイスには、インストール可能なさまざまな IronPDF パッケージが表示され、各パッケージのダウンロード数とバージョン番号も表示されます。 IronPDFを選択します: NuGet パッケージ マネージャー インターフェイスには、インストール用に選択されたパッケージとして IronPDF (バージョン 2021.3.1) が表示され、PDFCore やさまざまな IronPDF レンダリング アセットなどの代替 PDF ライブラリが比較用にリストされます。 "インストール"をクリックします。 インストールが成功すると、次のように表示されます。 Visual Studio での IronPDF のインストール プロセス。NuGet パッケージ マネージャーが IronPDF バージョン 2021.3.1 とその依存関係をインストールする様子を示しています。 "OK"を押してインストールを完了します。 IronPDF は、Windows 10、11、Server バージョンを含むWindows プラットフォームをサポートしています。 このライブラリは、クロスプラットフォーム開発のためにLinuxとmacOSもサポートしています。 IronPDF で PDF を作成するにはどうすればいいですか? ファイルの先頭にIronPdf名前空間を追加します。VB.NET開発者向けにも同様の機能が利用可能です。 using IronPdf; using IronPdf; $vbLabelText $csharpLabel 作成した PDF を保存するためのファイル パスが必要です。 SaveFileDialogを使用して、ユーザーにファイル名とパスの入力を求めます。 高度なシナリオでは、ディスクに保存せずにPDF をメモリ ストリームにエクスポートします。 private void Save_Click(object sender, EventArgs e) { // Code to Select the folder and save the file. SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.InitialDirectory = @"D:\"; saveFileDialog1.Title = "Save Pdf File"; saveFileDialog1.DefaultExt = "pdf"; saveFileDialog1.Filter = "Pdf files (*.pdf)|*.pdf|All files (*.*)|*.*"; saveFileDialog1.FilterIndex = 2; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { string filename = saveFileDialog1.FileName; // actual code that will create Pdf files var HtmlLine = new HtmlToPdf(); HtmlLine.RenderHtmlAsPdf(PdfText.Text).SaveAs(filename); // MessageBox to display that file save MessageBox.Show("File Saved Successfully!"); } } private void Save_Click(object sender, EventArgs e) { // Code to Select the folder and save the file. SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.InitialDirectory = @"D:\"; saveFileDialog1.Title = "Save Pdf File"; saveFileDialog1.DefaultExt = "pdf"; saveFileDialog1.Filter = "Pdf files (*.pdf)|*.pdf|All files (*.*)|*.*"; saveFileDialog1.FilterIndex = 2; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { string filename = saveFileDialog1.FileName; // actual code that will create Pdf files var HtmlLine = new HtmlToPdf(); HtmlLine.RenderHtmlAsPdf(PdfText.Text).SaveAs(filename); // MessageBox to display that file save MessageBox.Show("File Saved Successfully!"); } } $vbLabelText $csharpLabel SaveFileDialog 、フォルダーとファイル名を選択するためのダイアログを開きます。 初期ディレクトリはデフォルトで D ドライブに設定されていますが、変更することもできます。 DefaultExtensionは PDF に設定されています。 完全な変換オプションについては、 HTML から PDF へのチュートリアルをご覧ください。 "if"条件には、PDF を作成するコードが含まれています。 たった 2 行のコードで PDF を生成できます。 PdfTextは、PDF コンテンツを含むリッチ テキスト ボックスの名前です。 Filename はSaveFileDialogから選択されたファイル パスです。 Web アプリケーションの場合、IronPDF はURL から PDF への変換とASPX から PDF への変換をサポートします。 IronPDF で PDF を読むにはどうすればいいですか? IronPDF では、PDF ファイルの読み取りに 2 行のコードだけが必要です。 高度な抽出については、テキストと画像の抽出ガイドを参照してください。 次のインポートを追加します。 using IronPdf; using System; using System.Windows.Forms; using IronPdf; using System; using System.Windows.Forms; $vbLabelText $csharpLabel このコードを関数内に記述します。 IronPDF はPDF 解析機能とPDF DOM アクセスを提供します。 private void Read_Click(object sender, EventArgs e) { PdfDocument PDF = PdfDocument.FromFile(FilePath.Text); FileContent.Text = PDF.ExtractAllText(); } private void Read_Click(object sender, EventArgs e) { PdfDocument PDF = PdfDocument.FromFile(FilePath.Text); FileContent.Text = PDF.ExtractAllText(); } $vbLabelText $csharpLabel これにより、ドキュメントからすべての情報が抽出され、視聴者に提供されます。 レポート コンポーネントは、このデータをソースとして使用します。 IronPDF は、メモリ ストリームからの PDF の読み取りと、Web 表示用のPDF から HTML への変換をサポートしています。 GrapeCity PDF にはどのような機能がありますか? GrapeCity Documents は、一般的な形式のクロスプラットフォーム ドキュメント管理を提供します。 .NET Standard 2.0 ライブラリは、Adobe Acrobat を使用せずに PDF を読み取り、生成、変更、保存します。 フォント、画像、グラフィック、バーコード、コメント、アウトライン、スタンプ、透かしなどのサポートを提供します。 どのような PDF 操作機能が利用できますか? GrapeCity PDFは、.NET Standardアプリで、基本的なビジネスニーズから複雑なビジネスニーズまで、あらゆるビジネスニーズに対応するPDFを作成します。あらゆるソースからPDFを読み込み、変更、保存できます。 IronPDF は、 PDF の結合/分割、ページの追加/削除、ページの回転など、完全なPDF 編集機能を提供します。 PDF を画像に変換できますか? GrapeCity PDF は、最小限のコードを使用して、品質を損なうことなく PDF を画像として保存します。 IronPDF は、PNG、JPEG、TIFF 形式をサポートするPDF を画像にラスタライズする機能を提供します。 GrapeCityは PDF ビューア コンポーネントが含まれていますか? GrapeCity Documents PDF Viewer は、標準の PDF 機能をサポートする軽量のクライアント側ビューアです。 .NET MAUI 開発者向けに、IronPDF はナビゲーションおよび検索機能を備えたMAUI アプリケーションでの PDF 表示を提供します。 どのような種類の機能がサポートされていますか? GrapeCity PDF は、テキスト、グラフィック、写真、注釈、アウトラインを含む複雑な PDF を作成します。 IronPDF は、デジタル署名、フォームの作成/入力、透かし、メタデータ管理などの機能を拡張します。 GrapeCity PDF をインストールするにはどうすればよいですか? インストール方法は2種類あります。コンテナ化されたデプロイメントでは、IronPDFはDockerサポートとリモートコンテナ操作を提供し、柔軟な生成を実現します。 圧縮されたソース ファイルをダウンロードします。 ファイルをディレクトリに抽出します。 そのディレクトリに移動します。 run.cmdを実行してサンプルをビルドし、 SupportApiサービスを開始して、http://localhost:3003 を開きます。 詳細については、 readme.MD参照してください。 WinFormsエディションをインストールするにはどうすればよいですか? WinFormsエディションをインストールするには、次の手順に従います。 Download C1ControlPanel from GrapeCity's ComponentOne. ComponentOne C1ControlPanel.exe を使用してControlPanelを開きます (Visual Studio を閉じます)。 登録したメールアドレス/パスワードでログインしてください。 新規ユーザーの場合: 登録してアカウントを作成します。 メールアドレスを確認してください。 検証リンク経由で有効化します。 希望する場合は匿名ユーザーとして続行してください。 WinForms Editionタイルで"インストール"を選択します。"すべてのエディション"チェックボックスをオンにして、すべてのエディションをインストールします。 `GrapeCity`'s `ComponentOne` offers multiple edition options tailored to different development platforms and frameworks, each with the option to install sample projects ライセンス契約を表示するには、"インストール"をクリックします。 確認後に承認します。 設定ページを表示するには、ライセンス契約に同意してください。 ディレクトリ パスを確認し、インストールを開始します。 `ComponentOne` installation configuration screen with privacy and data collection options インストーラーはコントロールのインストール中に進行状況を表示します。 この処理中はキャンセルできません。 完了すると"インストール成功"画面が表示されます。 現在インストールされているバージョンを表示します。 The `WinForms` Edition installer interface displays a simple download progress bar and installation option for a suite of 65+ smart and effective UI controls designed for rapid Windows Forms development. The `ComponentOne` installation interface displays a successful installation message for version 20183.1.338, featuring navigation tabs for Products, Activities, License, and Support GrapeCityで PDF を作成するにはどうすればいいですか? 次のコードは、基本的なGrapeCity PDF 作成を示しています。 JavaScript を使用した HTML から PDF への変換、レスポンシブ CSS 、カスタム ヘッダー/フッターなどの高度な機能については、IronPDF が完全なソリューションを提供します。 using System; using System.IO; using System.Drawing; using System.Text; using GrapeCity.Documents.Text; using GrapeCity.Documents.Common; using GrapeCity.Documents.Drawing; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Pdf.Structure; using GrapeCity.Documents.Pdf.MarkedContent; using GrapeCity.Documents.Pdf.Graphics; using GrapeCity.Documents.Pdf.Annotations; using GCTEXT = GrapeCity.Documents.Text; using GCDRAW = GrapeCity.Documents.Drawing; namespace GcPdfWeb.Samples.Basics { // This sample shows how to create a PDF/A-3u compliant document. public class PdfA { public void CreatePDF(Stream stream) { var doc = new GcPdfDocument(); var date = new DateTime(1961, 4, 12, 6, 7, 0, DateTimeKind.Utc); // Mark the document as PDF/A-3u conformant: doc.ConformanceLevel = PdfAConformanceLevel.PdfA3u; var fnt = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "arial.ttf")); var gap = 36; // PDF/A-3a requires all content to be tagged so create and populate StructElement when rendering: StructElement sePart = new StructElement("Part"); doc.StructTreeRoot.Children.Add(sePart); TextLayout tl = null; // Add 3 pages with sample content tagged according to PDF/A rules: for (int pageNo = 1; pageNo <= 3; ++pageNo) { // add page var page = doc.Pages.Add(); var g = page.Graphics; float y = 72; if (doc.Pages.Count == 1) { // Create paragraph element: var seParagraph = new StructElement("P") { DefaultPage = page }; // Add it to Part element: sePart.Children.Add(seParagraph); tl = g.CreateTextLayout(); tl.MarginAll = 72; tl.MaxWidth = page.Size.Width; tl.DefaultFormat.Font = fnt; tl.DefaultFormat.FontBold = true; tl.DefaultFormat.FontSize = 20; tl.Append("PDF/A-3A Document"); // PerformLayout is done automatically in a new TextLayout or after a Clear(): //tl.PerformLayout(true); // Draw TextLayout within tagged content: g.BeginMarkedContent(new TagMcid("P", 0)); g.DrawTextLayout(tl, PointF.Empty); g.EndMarkedContent(); y = tl.ContentRectangle.Bottom + gap; seParagraph.ContentItems.Add(new McidContentItemLink(0)); } // Add some sample paragraphs tagged according to PDF/A rules: for (int i = 1; i <= 3; ++i) { // Create paragraph element: var seParagraph = new StructElement("P") { DefaultPage = page }; // Add it to Part element: sePart.Children.Add(seParagraph); var sb = new StringBuilder(); sb.Append(string.Format("Paragraph {0} on page {1}: ", i, pageNo)); sb.Append(Common.Util.LoremIpsum(1, 2, 4, 5, 10)); var para = sb.ToString(); tl.Clear(); tl.DefaultFormat.FontSize = 14; tl.DefaultFormat.FontBold = false; tl.MarginTop = y; tl.Append(para); // Draw TextLayout within tagged content: g.BeginMarkedContent(new TagMcid("P", i)); g.DrawTextLayout(tl, PointF.Empty); g.EndMarkedContent(); y += tl.ContentHeight + gap; // Add content item to paragraph StructElement: seParagraph.ContentItems.Add(new McidContentItemLink(i)); // PDF/A-3 allows embedding files into document, but they should be associated with some document element // add embedded file associated with seParagraph: var ef1 = EmbeddedFileStream.FromBytes(doc, Encoding.UTF8.GetBytes(para)); // ModificationDate and MimeType should be specified in case of PDF/A: ef1.ModificationDate = date; ef1.MimeType = "text/plain"; var fn = string.Format("Page{0}_Paragraph{1}.txt", pageNo, i); var fs1 = FileSpecification.FromEmbeddedStream(fn, ef1); // UnicodeFile.FileName should be specified for PDF/A compliance: fs1.UnicodeFile.FileName = fs1.File.FileName; // Relationship should be specified in case of PDF/A: fs1.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add(fn, fs1); seParagraph.AssociatedFiles.Add(fs1); } } // PDF/A-3 allows transparency drawing in PDF file, add some: var gpage = doc.Pages [0].Graphics; gpage.FillRectangle(new RectangleF(20, 20, 200, 200), Color.FromArgb(40, Color.Red)); // PDF/A-3 allows using FormXObjects, add one with transparency: var r = new RectangleF(0, 0, 144, 72); var fxo = new FormXObject(doc, r); var gfxo = fxo.Graphics; gfxo.FillRectangle(r, Color.FromArgb(40, Color.Violet)); TextFormat tf = new TextFormat() { Font = fnt, FontSize = 16, ForeColor = Color.FromArgb(100, Color.Black), }; gfxo.DrawString("FormXObject", tf, r, TextAlignment.Center, ParagraphAlignment.Center); gfxo.DrawRectangle(r, Color.Blue, 3); gpage.DrawForm(fxo, new RectangleF(300, 250, r.Width, r.Height), null, ImageAlign.ScaleImage); // PDF/A-3 allows using embedded files, but each embedded file must be associated with a document's element: EmbeddedFileStream ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "WordDocs", "ProcurementLetter.docx")); // ModificationDate and MimeType should be specified for EmbeddedFile in PDF/A: ef.ModificationDate = date; ef.MimeType = "application/msword"; var fs = FileSpecification.FromEmbeddedFile(ef); fs.UnicodeFile.FileName = fs.File.FileName; fs.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add("ProcurementLetter.docx", fs); // Associate embedded file with the document: doc.AssociatedFiles.Add(fs); // Add an attachment associated with an annotation: var sa = new StampAnnotation() { UserName = "Minerva", Font = fnt, Rect = new RectangleF(300, 36, 220, 72), }; sa.Flags |= AnnotationFlags.Print; // Use a FormXObject to represent the stamp annotation: var stampFxo = new FormXObject(doc, new RectangleF(PointF.Empty, sa.Rect.Size)); var gstampFxo = stampFxo.Graphics; gstampFxo.FillRectangle(stampFxo.Bounds, Color.FromArgb(40, Color.Green)); gstampFxo.DrawString("Stamp Annotation\nassociated with minerva.jpg", tf, stampFxo.Bounds, TextAlignment.Center, ParagraphAlignment.Center); gstampFxo.DrawRectangle(stampFxo.Bounds, Color.Green, 3); // sa.AppearanceStreams.Normal.Default = stampFxo; doc.Pages [0].Annotations.Add(sa); ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "Images", "minerva.jpg")); ef.ModificationDate = date; ef.MimeType = "image/jpeg"; fs = FileSpecification.FromEmbeddedFile(ef); fs.UnicodeFile.FileName = fs.File.FileName; fs.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add("minerva.jpg", fs); sa.AssociatedFiles.Add(fs); // Mark the document as conforming to Tagged PDF conventions (required for PDF/A): doc.MarkInfo.Marked = true; // Metadata.CreatorTool and DocumentInfo.Creator should be the same for a PDF/A document: doc.Metadata.CreatorTool = doc.DocumentInfo.Creator; // A title should be specified for PDF/A document: doc.Metadata.Title = "GcPdf Document"; doc.ViewerPreferences.DisplayDocTitle = true; // Done: doc.Save(stream); } } } using System; using System.IO; using System.Drawing; using System.Text; using GrapeCity.Documents.Text; using GrapeCity.Documents.Common; using GrapeCity.Documents.Drawing; using GrapeCity.Documents.Pdf; using GrapeCity.Documents.Pdf.Structure; using GrapeCity.Documents.Pdf.MarkedContent; using GrapeCity.Documents.Pdf.Graphics; using GrapeCity.Documents.Pdf.Annotations; using GCTEXT = GrapeCity.Documents.Text; using GCDRAW = GrapeCity.Documents.Drawing; namespace GcPdfWeb.Samples.Basics { // This sample shows how to create a PDF/A-3u compliant document. public class PdfA { public void CreatePDF(Stream stream) { var doc = new GcPdfDocument(); var date = new DateTime(1961, 4, 12, 6, 7, 0, DateTimeKind.Utc); // Mark the document as PDF/A-3u conformant: doc.ConformanceLevel = PdfAConformanceLevel.PdfA3u; var fnt = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "arial.ttf")); var gap = 36; // PDF/A-3a requires all content to be tagged so create and populate StructElement when rendering: StructElement sePart = new StructElement("Part"); doc.StructTreeRoot.Children.Add(sePart); TextLayout tl = null; // Add 3 pages with sample content tagged according to PDF/A rules: for (int pageNo = 1; pageNo <= 3; ++pageNo) { // add page var page = doc.Pages.Add(); var g = page.Graphics; float y = 72; if (doc.Pages.Count == 1) { // Create paragraph element: var seParagraph = new StructElement("P") { DefaultPage = page }; // Add it to Part element: sePart.Children.Add(seParagraph); tl = g.CreateTextLayout(); tl.MarginAll = 72; tl.MaxWidth = page.Size.Width; tl.DefaultFormat.Font = fnt; tl.DefaultFormat.FontBold = true; tl.DefaultFormat.FontSize = 20; tl.Append("PDF/A-3A Document"); // PerformLayout is done automatically in a new TextLayout or after a Clear(): //tl.PerformLayout(true); // Draw TextLayout within tagged content: g.BeginMarkedContent(new TagMcid("P", 0)); g.DrawTextLayout(tl, PointF.Empty); g.EndMarkedContent(); y = tl.ContentRectangle.Bottom + gap; seParagraph.ContentItems.Add(new McidContentItemLink(0)); } // Add some sample paragraphs tagged according to PDF/A rules: for (int i = 1; i <= 3; ++i) { // Create paragraph element: var seParagraph = new StructElement("P") { DefaultPage = page }; // Add it to Part element: sePart.Children.Add(seParagraph); var sb = new StringBuilder(); sb.Append(string.Format("Paragraph {0} on page {1}: ", i, pageNo)); sb.Append(Common.Util.LoremIpsum(1, 2, 4, 5, 10)); var para = sb.ToString(); tl.Clear(); tl.DefaultFormat.FontSize = 14; tl.DefaultFormat.FontBold = false; tl.MarginTop = y; tl.Append(para); // Draw TextLayout within tagged content: g.BeginMarkedContent(new TagMcid("P", i)); g.DrawTextLayout(tl, PointF.Empty); g.EndMarkedContent(); y += tl.ContentHeight + gap; // Add content item to paragraph StructElement: seParagraph.ContentItems.Add(new McidContentItemLink(i)); // PDF/A-3 allows embedding files into document, but they should be associated with some document element // add embedded file associated with seParagraph: var ef1 = EmbeddedFileStream.FromBytes(doc, Encoding.UTF8.GetBytes(para)); // ModificationDate and MimeType should be specified in case of PDF/A: ef1.ModificationDate = date; ef1.MimeType = "text/plain"; var fn = string.Format("Page{0}_Paragraph{1}.txt", pageNo, i); var fs1 = FileSpecification.FromEmbeddedStream(fn, ef1); // UnicodeFile.FileName should be specified for PDF/A compliance: fs1.UnicodeFile.FileName = fs1.File.FileName; // Relationship should be specified in case of PDF/A: fs1.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add(fn, fs1); seParagraph.AssociatedFiles.Add(fs1); } } // PDF/A-3 allows transparency drawing in PDF file, add some: var gpage = doc.Pages [0].Graphics; gpage.FillRectangle(new RectangleF(20, 20, 200, 200), Color.FromArgb(40, Color.Red)); // PDF/A-3 allows using FormXObjects, add one with transparency: var r = new RectangleF(0, 0, 144, 72); var fxo = new FormXObject(doc, r); var gfxo = fxo.Graphics; gfxo.FillRectangle(r, Color.FromArgb(40, Color.Violet)); TextFormat tf = new TextFormat() { Font = fnt, FontSize = 16, ForeColor = Color.FromArgb(100, Color.Black), }; gfxo.DrawString("FormXObject", tf, r, TextAlignment.Center, ParagraphAlignment.Center); gfxo.DrawRectangle(r, Color.Blue, 3); gpage.DrawForm(fxo, new RectangleF(300, 250, r.Width, r.Height), null, ImageAlign.ScaleImage); // PDF/A-3 allows using embedded files, but each embedded file must be associated with a document's element: EmbeddedFileStream ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "WordDocs", "ProcurementLetter.docx")); // ModificationDate and MimeType should be specified for EmbeddedFile in PDF/A: ef.ModificationDate = date; ef.MimeType = "application/msword"; var fs = FileSpecification.FromEmbeddedFile(ef); fs.UnicodeFile.FileName = fs.File.FileName; fs.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add("ProcurementLetter.docx", fs); // Associate embedded file with the document: doc.AssociatedFiles.Add(fs); // Add an attachment associated with an annotation: var sa = new StampAnnotation() { UserName = "Minerva", Font = fnt, Rect = new RectangleF(300, 36, 220, 72), }; sa.Flags |= AnnotationFlags.Print; // Use a FormXObject to represent the stamp annotation: var stampFxo = new FormXObject(doc, new RectangleF(PointF.Empty, sa.Rect.Size)); var gstampFxo = stampFxo.Graphics; gstampFxo.FillRectangle(stampFxo.Bounds, Color.FromArgb(40, Color.Green)); gstampFxo.DrawString("Stamp Annotation\nassociated with minerva.jpg", tf, stampFxo.Bounds, TextAlignment.Center, ParagraphAlignment.Center); gstampFxo.DrawRectangle(stampFxo.Bounds, Color.Green, 3); // sa.AppearanceStreams.Normal.Default = stampFxo; doc.Pages [0].Annotations.Add(sa); ef = EmbeddedFileStream.FromFile(doc, Path.Combine("Resources", "Images", "minerva.jpg")); ef.ModificationDate = date; ef.MimeType = "image/jpeg"; fs = FileSpecification.FromEmbeddedFile(ef); fs.UnicodeFile.FileName = fs.File.FileName; fs.Relationship = AFRelationship.Unspecified; doc.EmbeddedFiles.Add("minerva.jpg", fs); sa.AssociatedFiles.Add(fs); // Mark the document as conforming to Tagged PDF conventions (required for PDF/A): doc.MarkInfo.Marked = true; // Metadata.CreatorTool and DocumentInfo.Creator should be the same for a PDF/A document: doc.Metadata.CreatorTool = doc.DocumentInfo.Creator; // A title should be specified for PDF/A document: doc.Metadata.Title = "GcPdf Document"; doc.ViewerPreferences.DisplayDocTitle = true; // Done: doc.Save(stream); } } } $vbLabelText $csharpLabel GrapeCity PDF は、IronPDF と比較すると機能が制限されています。 IronPDF は、 PDF/A 準拠、 PDF/UA アクセシビリティ、カスタム用紙サイズ、高度なレンダリング オプションをサポートしています。 IronPDF のライセンス モデルと価格は何ですか? 30 日間返金保証:ライセンスを購入すると、30 日間返金保証が受けられます。 ライセンスがあなたのニーズに合わない場合、IronPDFは30日以内に返金を保証します。 簡単な統合:作業中のプロジェクトと環境への IronPDF の統合は、1 行のコードで完了するシームレスなプロセスです。 これは、NuGetパッケージメソッドを使用して統合するか、オンラインで直接ダウンロードして環境に統合することで実現できます。 永久ライセンス:すべてのライセンスは一度だけ購入され、更新は必要ありません。 無料サポートと製品アップデート:各ライセンスには、製品チームから直接提供される社内サポートと 1 年間の無料製品アップデートが付属します。 いつでも拡張機能を購入することができます。 購入前に拡張機能を確認できます。 即時ライセンス:支払いが受領されるとすぐに、登録されたライセンス キーが送信されます。 すべてのライセンスは、ステージング、開発、および本番環境で永続的に有効です。 IronPDF は Bootstrap のような最新の Web フレームワークをどのようにサポートしますか? 最新の PDF 生成では、視覚的なプロセス表現のメリットが活かされています。 このBootstrap 5の例は、IronPDFのワークフロータイムラインをカード、バッジ、ステップインジケーターでレンダリングする能力を示しています。 完全なフレームワークのサポートについては、 Bootstrap & Flexbox のトラブルシューティング ガイドを参照してください。 using IronPdf; var renderer = new ChromePdfRenderer(); string workflowTimeline = @" <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='___PROTECTED_URL_66___ rel='stylesheet'> <style> .timeline-item { position: relative; padding-left: 40px; margin-bottom: 30px; } .timeline-item::before { content: ''; position: absolute; left: 0; top: 0; width: 20px; height: 20px; background: #0d6efd; border-radius: 50%; border: 3px solid white; box-shadow: 0 0 0 2px #0d6efd; } .timeline-item::after { content: ''; position: absolute; left: 9px; top: 20px; width: 2px; height: calc(100% + 10px); background: #dee2e6; } .timeline-item:last-child::after { display: none; } @media print { .timeline-item { page-break-inside: avoid; } } </style> </head> <body class='bg-light'> <div class='container py-4'> <div class='text-center mb-5'> <h1 class='display-6 fw-bold'>PDF Generation Workflow</h1> <p class='lead text-muted'>From HTML to Professional PDF Documents</p> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 1: Initialize Renderer</h4> <span class='badge bg-primary'>Setup</span> </div> <p class='card-text'>Create ChromePdfRenderer instance with Chrome V8 engine for accurate HTML rendering.</p> <div class='bg-light p-2 rounded'> <code>var renderer = new ChromePdfRenderer();</code> </div> <div class='mt-2'> <small class='text-muted'>✓ Chrome V8 Engine • ✓ Full CSS3 Support • ✓ JavaScript Ready</small> </div> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 2: Prepare HTML Content</h4> <span class='badge bg-info'>Content</span> </div> <p class='card-text'>Design your document using modern HTML5, CSS3 (Flexbox/Grid), and optional JavaScript.</p> <div class='row g-2'> <div class='col-4'><span class='badge bg-success w-100'>HTML5</span></div> <div class='col-4'><span class='badge bg-success w-100'>CSS3</span></div> <div class='col-4'><span class='badge bg-success w-100'>JavaScript</span></div> </div> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 3: Render to PDF</h4> <span class='badge bg-warning text-dark'>Processing</span> </div> <p class='card-text'>Convert HTML to PDF with pixel-perfect accuracy and sub-second performance.</p> <div class='bg-light p-2 rounded'> <code>var pdf = renderer.RenderHtmlAsPdf(htmlContent);</code> </div> <div class='progress mt-2' style='height: 8px;'> <div class='progress-bar bg-warning' style='width: 100%'></div> </div> <small class='text-muted d-block mt-1'>Average render time: 0.9 seconds</small> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 4: Save or Stream</h4> <span class='badge bg-success'>Output</span> </div> <p class='card-text'>Export to file, stream, or byte array for flexible deployment options.</p> <div class='bg-light p-2 rounded'> <code>pdf.SaveAs("document.pdf");</code> </div> <div class='mt-2'> <span class='badge bg-outline-secondary me-1'>File</span> <span class='badge bg-outline-secondary me-1'>Stream</span> <span class='badge bg-outline-secondary'>Byte Array</span> </div> </div> </div> </div> <div class='alert alert-info'> <strong>Comparison Note:</strong> GrapeCity PDF Viewer focuses on document viewing and annotation, not HTML-to-PDF generation. IronPDF specializes in creating PDFs from modern web content with full Bootstrap and framework support. </div> <div class='card shadow-sm border-primary'> <div class='card-header bg-primary text-white'> <h5 class='mb-0'>Key Advantages</h5> </div> <div class='card-body'> <div class='row'> <div class='col-md-6'> <h6 class='text-primary'>IronPDF Strengths</h6> <ul class='small'> <li>Complete HTML-to-PDF workflow</li> <li>Bootstrap 5 framework support</li> <li>Async/await for scalability</li> <li>Cross-platform deployment</li> </ul> </div> <div class='col-md-6'> <h6 class='text-muted'>GrapeCity Focus</h6> <ul class='small'> <li>PDF viewing and annotation</li> <li>UI component for display</li> <li>Limited generation features</li> <li>Viewer-centric approach</li> </ul> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(workflowTimeline); pdf.SaveAs("workflow-timeline.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); string workflowTimeline = @" <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <link href='___PROTECTED_URL_66___ rel='stylesheet'> <style> .timeline-item { position: relative; padding-left: 40px; margin-bottom: 30px; } .timeline-item::before { content: ''; position: absolute; left: 0; top: 0; width: 20px; height: 20px; background: #0d6efd; border-radius: 50%; border: 3px solid white; box-shadow: 0 0 0 2px #0d6efd; } .timeline-item::after { content: ''; position: absolute; left: 9px; top: 20px; width: 2px; height: calc(100% + 10px); background: #dee2e6; } .timeline-item:last-child::after { display: none; } @media print { .timeline-item { page-break-inside: avoid; } } </style> </head> <body class='bg-light'> <div class='container py-4'> <div class='text-center mb-5'> <h1 class='display-6 fw-bold'>PDF Generation Workflow</h1> <p class='lead text-muted'>From HTML to Professional PDF Documents</p> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 1: Initialize Renderer</h4> <span class='badge bg-primary'>Setup</span> </div> <p class='card-text'>Create ChromePdfRenderer instance with Chrome V8 engine for accurate HTML rendering.</p> <div class='bg-light p-2 rounded'> <code>var renderer = new ChromePdfRenderer();</code> </div> <div class='mt-2'> <small class='text-muted'>✓ Chrome V8 Engine • ✓ Full CSS3 Support • ✓ JavaScript Ready</small> </div> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 2: Prepare HTML Content</h4> <span class='badge bg-info'>Content</span> </div> <p class='card-text'>Design your document using modern HTML5, CSS3 (Flexbox/Grid), and optional JavaScript.</p> <div class='row g-2'> <div class='col-4'><span class='badge bg-success w-100'>HTML5</span></div> <div class='col-4'><span class='badge bg-success w-100'>CSS3</span></div> <div class='col-4'><span class='badge bg-success w-100'>JavaScript</span></div> </div> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 3: Render to PDF</h4> <span class='badge bg-warning text-dark'>Processing</span> </div> <p class='card-text'>Convert HTML to PDF with pixel-perfect accuracy and sub-second performance.</p> <div class='bg-light p-2 rounded'> <code>var pdf = renderer.RenderHtmlAsPdf(htmlContent);</code> </div> <div class='progress mt-2' style='height: 8px;'> <div class='progress-bar bg-warning' style='width: 100%'></div> </div> <small class='text-muted d-block mt-1'>Average render time: 0.9 seconds</small> </div> </div> </div> <div class='timeline-item'> <div class='card shadow-sm'> <div class='card-body'> <div class='d-flex justify-content-between align-items-center mb-2'> <h4 class='card-title mb-0'>Step 4: Save or Stream</h4> <span class='badge bg-success'>Output</span> </div> <p class='card-text'>Export to file, stream, or byte array for flexible deployment options.</p> <div class='bg-light p-2 rounded'> <code>pdf.SaveAs("document.pdf");</code> </div> <div class='mt-2'> <span class='badge bg-outline-secondary me-1'>File</span> <span class='badge bg-outline-secondary me-1'>Stream</span> <span class='badge bg-outline-secondary'>Byte Array</span> </div> </div> </div> </div> <div class='alert alert-info'> <strong>Comparison Note:</strong> GrapeCity PDF Viewer focuses on document viewing and annotation, not HTML-to-PDF generation. IronPDF specializes in creating PDFs from modern web content with full Bootstrap and framework support. </div> <div class='card shadow-sm border-primary'> <div class='card-header bg-primary text-white'> <h5 class='mb-0'>Key Advantages</h5> </div> <div class='card-body'> <div class='row'> <div class='col-md-6'> <h6 class='text-primary'>IronPDF Strengths</h6> <ul class='small'> <li>Complete HTML-to-PDF workflow</li> <li>Bootstrap 5 framework support</li> <li>Async/await for scalability</li> <li>Cross-platform deployment</li> </ul> </div> <div class='col-md-6'> <h6 class='text-muted'>GrapeCity Focus</h6> <ul class='small'> <li>PDF viewing and annotation</li> <li>UI component for display</li> <li>Limited generation features</li> <li>Viewer-centric approach</li> </ul> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(workflowTimeline); pdf.SaveAs("workflow-timeline.pdf"); $vbLabelText $csharpLabel 出力: Bootstrap 5 カード、バッジ、進行状況バー、カスタム タイムライン スタイルを備えたプロフェッショナルなワークフロー タイムライン PDF。 IronPDFは、すべての位置調整、フレックスボックスレイアウト、およびユーティリティクラスを正確にレンダリングし、複雑な視覚デザインのための包括的なCSS3サポートを示しています。 Bootstrap の互換性の詳細については、 Bootstrap & Flexbox CSS ガイドを参照してください。 IronPDF は、豊富なタイポグラフィを実現するWeb フォントとアイコンをサポートしています。 ライトパッケージの価格はいくらですか? 1開発者 1ロケーション 1プロジェクト 永続ライセンス このパッケージにより、1 人の開発者が 1 つのアプリケーションに対して 1 つの場所で Iron Software を使用できるようになります。 ライセンスは組織外または代理店/クライアント関係に譲渡できません。 追加の保証なしの OEM 再配布および SaaS の使用は除外されます。 価格:年間$799から。 プロフェッショナル ライセンスには何が含まれますか? 10開発者 10ロケーション 10プロジェクト 永続ライセンス このライセンスにより、10 人の開発者が最大 10 か所で Iron Software を使用できます。 無制限の Web サイト、イントラネット アプリケーション、デスクトップ ソフトウェアで使用できます。 ライセンスは組織外に譲渡できません。 追加の保証なしの OEM 再配布および SaaS の使用は除外されます。 最大 10 個のプロジェクトと統合します。 価格: $1,199から開始します。 無制限ライセンスのメリットは何ですか? 無制限の開発者 無制限の場所 無制限のプロジェクト 永続ライセンス 1 つの組織内の無制限の開発者が無制限の場所で Iron Software を使用できるようになります。 無制限のアプリケーションで使用できます。 ライセンスは組織外に譲渡できません。 追加の保証なしの OEM 再配布および SaaS の使用は除外されます。 価格: 年間$2999から。 ロイヤリティフリーの再配布:これにより、基本ライセンスでカバーされるプロジェクトの数に基づいて、Iron ソフトウェアを複数の異なるパッケージの商用製品の一部として (ロイヤリティを支払うことなく) 配布できるようになります。 これにより、基本ライセンスでカバーされるプロジェクトの数に基づいてSaaSソフトウェアサービス内でIron Softwareを展開できます。 価格: 年間$1599から。 IronPDF は 3 つのライセンス レベルを提供しており、プロフェッショナル ライセンスは"最も人気"として強調表示され、10 人の開発者、10 か所、10 のプロジェクトを 999 ドルで提供します。 GrapeCity PDF のライセンス モデルと価格は何ですか? PDF ライセンスのドキュメントには何が含まれていますか? 5人の開発者ライセンスを含む このパッケージにはサポートとメンテナンスがない無制限の配布場所での5人の開発者ライセンスが含まれています。 開発者ライセンス 1 つと配布場所 1 つが含まれますが、サポートとメンテナンスは含まれません。 価格: $1,199から開始します。 Documents for PDF Unlimitedとは何ですか? 5人の開発者ライセンスを含む 無制限の配布場所 配布場所が無制限の開発者ライセンスが 1 つ含まれています。 サポートおよびメンテナンスはありません。 GrapeCity SaaS と OEM をサポートしていません。 価格:年間 2,799 ドルから。 Documents for PDF Team Unlimited は何を提供しますか? 5つの開発者ライセンスを含む 無制限の配布場所 配布場所が無制限の 5 つの開発者ライセンスが含まれます。 サポートおよびメンテナンスはありません。 GrapeCity SaaS と OEM をサポートしていません。 価格:年間 5,799 ドルから。 `GrapeCity`'s Documents for PDF pricing structure offers three tiers to accommodate different development team sizes and distribution needs. IronPDF Lite One-Developer パッケージには、 $799の 1 年間のサポートが含まれています。 GrapeCity Documents for PDF One-Developer パッケージは、サポートなしでライセンス料が$1,199かかります。 IronPDF プロフェッショナル パッケージには、 $1,199による 1 年間のサポートが提供される 10 人の開発者が含まれています。 GrapeCity 5開発者向けパッケージを5,799ドルでのみ提供しています。IronPDFのライセンスオプションの詳細については、公式ライセンスページをご覧ください。 IronPDF Lite および Professional パッケージには、SaaS サービス、OEM、および 5 年間のサポート オプションが含まれています。 5年間のサポート、SaaS、OEMを含むLite 1開発者パッケージの価格は2,897ドルです。GrapeCity GrapeCity SaaS、OEM、5年間のサポートを提供していません。 5年間のサポート、SaaS、OEMを含むIron Professional 10開発者パッケージの価格は3,397ドルです。GrapeCity GrapeCityは10開発者オプションがありません。 長期サポートのためのライセンスの延長とアップグレード オプションについて説明します。 .NET プロジェクトにはどの PDF ライブラリを選択すればよいですか? GrapeCity Documents for PDF を使用すると、エクスポート/インポート、 AcroForms作成、デスクトップ アプリケーションでの PDF 実行が可能になります。 ただし、フォームの作成、デジタル署名、注釈のサポートを含む完全な PDF 操作については、IronPDF は高度な機能を提供します。 IronPDF はより高い精度を提供します。 競合他社は、画像変換の失敗や不明な文字などの問題に遭遇する可能性があります。 IronPDF は正確な結果を提供します。 Chrome レンダリング エンジンは、ピクセルパーフェクトな HTML から PDF へのガイドを使用して検証された、ピクセルパーフェクトなレンダリングを保証します。 最適化については、 IronPDF パフォーマンス支援ガイドを参照してください。 IronPDF は、継続的なコストなしで競争力のあるライセンスとサポートを提供します。 IronPDF は完全な機能パッケージを備えた$799から始まります。 GrapeCity PDF の料金は年間 1,649 ドルから始まります。 IronPDFは、単一の価格で複数のプラットフォームをサポートします。エンタープライズ展開向けには、非同期およびマルチスレッド機能を提供し、高パフォーマンスな生成を実現します。 無料トライアルにアクセスして、すべての機能を試すことができます。 完全な Iron Suite を購入すると、2 つの価格で 5 つの製品が提供されます。 IronPDF ライセンスの詳細については、Iron Software のIron Suite 製品ページで完全なパッケージ情報を参照してください。 ご注意 GrapeCity Documents for PDF は、それぞれの所有者の登録商標です。 このサイトはGrapeCity Documents for PDF と提携、承認、または後援されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。 よくある質問 .NETでHTMLをPDFに変換するにはどうすればいいですか? IronPDFのRenderHtmlAsPdfメソッドを使用して、HTML文字列をPDFに変換できます。さらに、RenderHtmlFileAsPdfメソッドを使用して、HTMLファイルをPDFに変換できます。 NuGetを使用してPDFライブラリをインストールする手順とは何ですか? NuGetを使用してIronPDFをインストールするには、Visual Studioを開き、「NuGetパッケージの管理」に移動し、「IronPdf」を検索してから「インストール」をクリックし、プロジェクトに追加します。 .NETのGrapeCity PDF Viewerの代替案にはどのようなものがありますか? IronPDFはGrapeCity PDF Viewerの適切な代替案であり、.NET Core、.NET 5、Framework、およびStandardに対する広範なサポートを提供し、ユーザーフレンドリーな体験を提供します。 .NETライブラリを使用してPDFファイルを作成および読み取るにはどうすればよいですか? IronPDFを使用すると、IronPdf名前空間をインクルードし、HtmlToPdfクラスを使用してHTMLをPDFとしてレンダリングすることでPDFを作成できます。PDFを読み取るには、PdfDocumentクラスを使用してコンテンツにアクセスおよび操作できます。 PDFライブラリのライセンスオプションにはどのようなものがありますか? IronPDFは、単一の開発者向けのLiteパッケージ、最大10人の開発者向けのProfessionalライセンス、チーム向けのUnlimitedライセンスなど、さまざまなライセンシングオプションを提供し、すべて永久的なライセンスとサポートオプションがあります。 他のPDFソリューションよりもIronPDFを選ぶ理由は何ですか? IronPDFはその正確性、包括的な機能、競争力のあるライセンス、および広範なサポートオプションのために推奨されています。複数のプラットフォームに対するサポートを競争力のある価格で提供しています。 購入前にPDFライブラリを試すことはできますか? \u306f\u3044\u3001IronPDF \u306b\u306f\u3001\u8cfc\u5165\u3092\u6c7a\u5b9a\u3059\u308b\u524d\u306b\u3059\u3079\u3066\u306e\u5229\u7528\u53ef\u80fd\u306a\u6a5f\u80fd\u3092\u63a2\u7d22\u3067\u304d\u308b\u7121\u6599\u8a66\u7528\u7248\u304c\u3042\u308a\u307e\u3059\u3002\u3055\u3089\u306b\u3001Iron Suite \u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u306f\u3001\u5272\u5f15\u6599\u91d1\u3067 Iron Software \u3059\u3079\u3066\u306e\u88fd\u54c1\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/S> PDFファイルを使用することの欠点は何ですか? PDFはそのサイズのためにメールでの共有が難しいことがあり、Word文書と比較してモバイルデバイスで鮮明に表示されない場合があり、編集や更新には特定のソフトウェアが必要です。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 1月 20, 2026 MVCでiTextSharpを使ってPDFを生成する vs IronPDF:完全な比較 iTextSharpとIronPDFを使ってASP.NET MVCのPDF生成方法を比較します。どちらのライブラリがより優れたHTMLレンダリングと簡単な実装を提供するかをご覧ください。 詳しく読む 更新日 1月 7, 2026 Ghostscript GPL vs IronPDF:技術比較ガイド Ghostscript GPLとIronPDFの主な違いをご覧ください。AGPLライセンスと商用ライセンス、コマンドラインスイッチと.NETネイティブAPI、HTML-to-PDF機能を比較してください。 詳しく読む 更新日 1月 21, 2026 .NET Core 開発に最も価値を提供する ASP.NET PDF ライブラリはどれですか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む IronPDF vs XFINIUM.PDF: .NET向けHTMLからPDFへのライブラリ比較IronPDFとTextcontrolの比較
公開日 1月 20, 2026 MVCでiTextSharpを使ってPDFを生成する vs IronPDF:完全な比較 iTextSharpとIronPDFを使ってASP.NET MVCのPDF生成方法を比較します。どちらのライブラリがより優れたHTMLレンダリングと簡単な実装を提供するかをご覧ください。 詳しく読む
更新日 1月 7, 2026 Ghostscript GPL vs IronPDF:技術比較ガイド Ghostscript GPLとIronPDFの主な違いをご覧ください。AGPLライセンスと商用ライセンス、コマンドラインスイッチと.NETネイティブAPI、HTML-to-PDF機能を比較してください。 詳しく読む
更新日 1月 21, 2026 .NET Core 開発に最も価値を提供する ASP.NET PDF ライブラリはどれですか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む