IRONSOFTWAREHOME
ビデオ

How to Compress PDFs in C#

Curtis Chau
Curtis Chau
Updated: 2026年5月18日

ComPDFKitは確かなPDF操作機能を提供していますが、開発チームはいくつかの要因によって、より確立された代替手段を検討することになります。

市場の成熟度とエコシステムの比較

ComPDFKitは、ドキュメントのギャップ、コミュニティの少なさ、Stack Overflowのカバー範囲の狭さなど、新しい市場参入者に共通する課題に直面しています。 IronPDFの10年にわたる改良は、エンタープライズプロジェクトが必要とする安定性とリソースを提供します。

アスペクトComPDFKitIronPDF
HTMLからPDFへ手作業によるHTML解析が必要ネイティブChromiumレンダリング
市場の成熟度新規参加者10年以上の実績
コミュニティサイズ小規模で限定的なStack Overflow大規模で活発なコミュニティ
ドキュメントいくつかのギャップ豊富なチュートリアルとガイド
ダウンロード成長中1,000万以上のNuGetダウンロード数
APIスタイルC# 影響を受ける、冗長最新 for .NET流暢なAPI
メモリ管理手動のRelease()呼び出しGCの自動処理

フィーチャー パリティ

どちらのライブラリも包括的なPDF機能をサポートしています:

フィーチャーComPDFKitIronPDF
HTMLからPDFへ基本/マニュアル✅ ネイティブChromium
URLからPDFへマニュアルの実装✅ 組み込みの
ゼロからPDFを作成
PDF編集
テキスト抽出
マージ/スプリット
デジタル署名
フォーム入力
透かし
クロスプラットフォームWindows、Linux、macOSWindows、Linux、macOS

主な移行のメリット

1.優れたHTMLレンダリング: IronPDFのChromiumエンジンは、最新のCSS3、 JavaScript、レスポンシブレイアウトをネイティブに処理します。 2.成熟したエコシステム: 10年以上にわたる改良、広範なドキュメント、実証済みの安定性 3. よりシンプルなAPI: ボイラープレートコードが少なく、Release()呼び出しによる手動メモリ管理が不要 4. **.NETとの統合の改善:**ネイティブのasync/await、LINQサポート、流れるようなインターフェース 5.豊富なリソース: Stack Overflowの数千の回答とコミュニティの例

移行前の準備

前提条件

あなたの環境がこれらの要件を満たしていることを確認してください:

  • .NET Framework 4.6.2+または.NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+またはC#拡張機能付きVS Code
  • NuGetパッケージマネージャへのアクセス
  • IronPDFライセンスキー (ironpdf.com にて無料トライアル可能)

ComPDFKitの使用状況を確認する

ソリューションディレクトリでこれらのコマンドを実行し、すべてのComPDFKit参照を特定します:

# Find allComPDFKitusages in your codebase
grep -r "using ComPDFKit" --include="*.cs" .
grep -r "CPDFDocument\|CPDFPage\|CPDFAnnotation" --include="*.cs" .

# Find NuGet package references
grep -r "ComPDFKit" --include="*.csproj" .
SHELL

予想される画期的な変更

変更ComPDFKitIronPDFインパクト
ドキュメントの読み込みCPDFDocument.InitWithFilePath()PdfDocument.FromFile()メソッド名の変更
セービングdocument.WriteToFilePath()pdf.SaveAs()メソッド名の変更
メモリクリーンアップdocument.Release()が必要自動翻訳(GC)手動クリーンアップの削除
ページへのアクセスdocument.PageAtIndex(i)pdf.Pages[i]配列スタイルのアクセス
ページ索引0ベース0ベース変更不要
HTMLレンダリングマニュアルの実装RenderHtmlAsPdf()主な簡略化
テキスト抽出textPage.GetText()pdf.ExtractAllText()簡易API

ステップごとの移行プロセス

ステップ 1: NuGet パッケージを更新する

ComPDFKitパッケージを削除し、IronPDFをインストールしてください:

# RemoveComPDFKitpackages
dotnet remove package ComPDFKit.NetCore
dotnet remove package ComPDFKit.NetFramework

# Install IronPDF
dotnet add package IronPdf
SHELL

ステップ 2: 名前空間参照の更新

ComPDFKitの名前空間をIronPDFに置き換えてください:

// Remove these
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFPage;
using ComPDFKit.PDFAnnotation;
using ComPDFKit.Import;

// Add this
using IronPdf;

ステップ 3: ライセンスの設定

// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

完全な API 移行のリファレンス

ドキュメント操作

タスクComPDFKitIronPDF
空のドキュメントを作成CPDFDocument.CreateDocument()new PdfDocument()
ファイルから読み込むCPDFDocument.InitWithFilePath(path)PdfDocument.FromFile(path)
ストリームから読み込むCPDFDocument.InitWithStream(stream)PdfDocument.FromStream(stream)
ファイルに保存document.WriteToFilePath(path)pdf.SaveAs(path)
ページ数を取得document.PageCountpdf.PageCount
リリース/廃棄document.Release()不要

HTMLからPDFへの変換

タスクComPDFKitIronPDF
HTML文字列からPDFへ手動による実装が必要renderer.RenderHtmlAsPdf(html)
HTMLファイルからPDFへ手動による実装が必要renderer.RenderHtmlFileAsPdf(path)
URLからPDFへ手動による実装が必要renderer.RenderUrlAsPdf(url)
ページサイズの設定ページ作成パラメータrenderer.RenderingOptions.PaperSize
余白の設定エディタ設定renderer.RenderingOptions.MarginTopなど

マージと分割の操作

タスクComPDFKitIronPDF
ドキュメントのマージdoc1.ImportPagesAtIndex(doc2, range, index)PdfDocument.Merge(pdf1, pdf2)
文書の分割新しいドキュメントにページを抽出pdf.CopyPages(start, end)

コード移行の例

HTMLからPDFへの変換

ComPDFKitとIronPDFの最も大きな違いはHTMLレンダリングです。 ComPDFKitは手動でテキストを配置する必要がありますが、IronPDFはChromiumエンジンでネイティブにHTMLをレンダリングします。

ComPDFKitの実装:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using System;

class Program
{
    static void Main()
    {
        // ComPDFKit's .NET SDK has no native HTML-to-PDF rendering.
        // The closest equivalent is to create a blank document and lay
        // out primitives manually, or call ComPDFKit's separate cloud
        // Conversion API (a different SKU).
        var document = CPDFDocument.CreateDocument();
        document.InsertPage(0, 595, 842, string.Empty);

        document.WriteToFilePath("output.pdf");
        document.Release();
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is HTML content.</p>");
        pdf.SaveAs("output.pdf");
    }
}

IronPDFのChromePdfRendererは手動のテキスト配置とエディタ管理を不要にします。 その他のHTML変換オプションについては、HTML to PDF documentationを参照してください。

複数のPDFをマージする

ComPDFKitの実装:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.Import;
using System;

class Program
{
    static void Main()
    {
        var document1 = CPDFDocument.InitWithFilePath("file1.pdf");
        var document2 = CPDFDocument.InitWithFilePath("file2.pdf");
        
        // Import pages from document2 into document1
        document1.ImportPagesAtIndex(document2, "0-" + (document2.PageCount - 1), document1.PageCount);
        
        document1.WriteToFilePath("merged.pdf");
        document1.Release();
        document2.Release();
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("file1.pdf");
        var pdf2 = PdfDocument.FromFile("file2.pdf");
        
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
    }
}

IronPDFの静的ImportPagesAtIndexパターンを排除します。 その他のオプションについては、 PDF 結合のドキュメントを参照してください。

透かしの追加

透かしは、ComPDFKitのプロパティ駆動型CPDFWatermark構成とIronPDFのHTMLベースのスタイリングの違いを示します。

ComPDFKitの実装:

// NuGet: Install-Package ComPDFKit.NetCore
using ComPDFKit.PDFDocument;
using ComPDFKit.PDFWatermark;
using System;

class Program
{
    static void Main()
    {
        var document = CPDFDocument.InitWithFilePath("input.pdf");

        CPDFWatermark watermark = document.InitWatermark(
            C_Watermark_Type.WATERMARK_TYPE_TEXT);
        watermark.SetText("CONFIDENTIAL");
        watermark.SetFontName("Helvetica");
        watermark.SetFontSize(48);
        watermark.SetTextRGBColor(255, 0, 0);
        watermark.SetRotation(45);
        watermark.SetOpacity(76); // 0..255
        watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
        watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
        watermark.SetPages($"0-{document.PageCount - 1}");
        watermark.SetFront(true);
        watermark.CreateWatermark();

        document.WriteToFilePath("watermarked.pdf");
        document.Release();
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("input.pdf");
        
        pdf.ApplyWatermark("<h1 style='color:rgba(255,0,0,0.3);'>CONFIDENTIAL</h1>",
            rotation: 45,
            verticalAlignment: VerticalAlignment.Middle,
            horizontalAlignment: HorizontalAlignment.Center);
        
        pdf.SaveAs("watermarked.pdf");
    }
}

IronPDFは多段階CPDFWatermark構成をHTML/CSSスタイルで単一のメソッド呼び出しに簡略化します。 その他のオプションについては、透かしのドキュメントを参照してください。

テキスト抽出

ComPDFKitの実装:

using ComPDFKit.PDFDocument;
using System.Text;

var document = CPDFDocument.InitWithFilePath("document.pdf");

// Extract text (verbose)
var allText = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
    var page = document.PageAtIndex(i);
    var textPage = page.GetTextPage();
    allText.AppendLine(textPage.GetText(0, textPage.CountChars()));
    textPage.Release();
    page.Release();
}

document.WriteToFilePath("output.pdf");
document.Release(); // Must remember to release!

IronPDFの実装:

using IronPdf;

var pdf = PdfDocument.FromFile("document.pdf");

// Extract text (one-liner)
string allText = pdf.ExtractAllText();

pdf.SaveAs("output.pdf");
// No Release() needed - GC handles cleanup

IronPDFは手動のRelease()呼び出しを伴う複数行のテキスト抽出を単一メソッドに簡略化します。 その他の抽出オプションについては、テキスト抽出のドキュメントを参照してください。

パスワード保護

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");

包括的なセキュリティ オプションについては、暗号化のドキュメントを参照してください。

重要な移行に関する注意事項

すべての Release() 呼び出しを削除します

最もインパクトのある変更は、手動によるメモリ管理の削除です。 ComPDFKitは文書、ページ、およびテキストページで明示的なRelease()呼び出しを要求します。 IronPDFは.NETのガベージコレクションによってこれを自動的に処理します:

//ComPDFKit- manual cleanup required
document.Release();
page.Release();
textPage.Release();

//IronPDF- no equivalent needed
// GC handles cleanup automatically

ネイティブ HTML レンダリング

ComPDFKitはエディタAPIを使って手動でテキストを配置する必要があります。IronPDFはChromiumエンジンでHTML/CSSをネイティブにレンダリングし、最新のCSS3、JavaScript、レスポンシブレイアウトをサポートします。

同じページのインデックス

両方のライブラリは0ベースインデックスを使用します (最初のページはPages[0]) — ページアクセスコードに変更は必要ありません。

簡易テキスト抽出

複数行のGetTextPage() + GetText() + ExtractAllText()呼び出しに置き換えます。

フルエント マージ API

Merge(pdf1, pdf2)に置き換えます。

移行後のチェックリスト

コードの移行が完了したら、以下を確認してください:

  • すべてのユニットテストを実行して、PDF生成が正しく機能することを確認します。
  • PDF出力品質を比較します(IronPDFのChromiumエンジンではレンダリング結果が異なる場合がありますが、通常はより優れています)
  • 複雑な CSS とJavaScriptを使用した HTML レンダリングをテストする
  • テキスト抽出の精度を検証する
  • フォームの機能をテストする
  • パフォーマンステストのバッチ操作
  • すべてのターゲット環境でテストする
  • CI/CDパイプラインを更新する
  • ComPDFKitライセンスファイルを削除する

その他のリソース


ComPDFKitからIronPDFへの移行は、Release()呼び出しを使用した手動のメモリ管理を排除し、ComPDFKitに欠けているネイティブHTMLからPDFへのレンダリングを提供します。 IronPDFの成熟したエコシステムへの移行は、エンタープライズプロジェクトが必要とするドキュメントの深さ、コミュニティサポート、実証済みの安定性を提供します。

ご注意: ComPDFKitは、各所有者の登録商標です。)] このサイトはComPDFKitに関連しておらず、ComPDFKit の支持もスポンサーも得ていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。