製品比較

IronPDFとITextPDFの比較

公開済み 2022年3月31日
共有:

イントロダクション

PDFは「Portable Document Format」の略で、Adobeが開発したファイル形式です。 PDFは、テキストや画像のフォーマットが保持された文書を表示するために役立ちます。 PDFファイルは現代社会において重要な役割を果たしており、請求書の作成や文書生成などの目的であらゆるビジネス分野で使用されています。 今日、PDF生成は、市場に出回っているPDFライブラリのおかげでほとんど直観的になりました。 プロジェクトでPDFライブラリを使用することを決定する際には、各ライブラリの機能と利点を考慮して、最適なライブラリを選択できるようにすることが重要です。

この記事では、最も人気のある2つの.NET PDFライブラリを比較します。それらは次のとおりです:

  • IronPDF
  • iText PDF

    IronPDFとiText PDFライブラリの両方は、Microsoft .NETアプリケーションやプロジェクトでPDFファイルを作成、読み取り、および変更するために使用されます。 アプリケーションに最適なライブラリを決定するために、まず2つのライブラリの機能を比較し、その後にPDFの変換と操作のパフォーマンスコストを検討します。 両方のライブラリはMicrosoft .NETフレームワークでサポートされています。 各ライブラリの時間を分析のためにログも取ります。

1. IronPDFの特徴

IronPDFは開発者が簡単にPDFを作成、読み込み、修正するために使用する強力なPDF .NETライブラリです。 内部的には、IronPDFはChromiumエンジンを使用しており、HTML5、JavaScript、CSS、画像ファイルをPDFに変換したり、カスタムヘッダーとカスタムフッターを追加したり、ブラウザで表示されている通りにPDFをレンダリングするなど、多くの便利で強力な機能を含んでいます。 IronPDFは、HTML、ASPX、Razor View、およびMVCなどのさまざまなウェブおよびネットフォーマットをサポートしています。 IronPDFの主な機能には以下が含まれます:

  • .NET C#コード内で直感的にPDFファイルを作成、読み取り、および修正する。
  • カスタムネットワークログイン資格情報、ユーザーエージェント、プロキシ、クッキー、HTTPヘッダー、フォーム変数を処理する設定を備えたウェブサイトURLリンクからPDFを生成して、HTMLログインフォームの背後でログインを許可します。
  • 既存のPDFドキュメントから画像を抽出すること。
  • PDFドキュメントにヘッダー、フッター、テキスト、画像、ブックマーク、ウォーターマーク等を追加する。
  • 複数のPDFドキュメントのページを簡単に結合および分割する機能。
  • CSSファイルやメディアタイプファイルをドキュメントに変換する機能。

2. iText PDF機能

iText PDFは、テキストをPDF文書に変換できるオープンソースのJavaライブラリです。 iTextはAGPLライセンスソフトウェアのスキームに従います。 APGLは、無料かつオープンソースのソフトウェアライセンスです。

  • iTextライブラリは、PDFドキュメントを作成するためのAPIを提供します。
  • iTextソフトウェアは、HTMLおよびXML文字列をPDFに解析することができます。
  • iTextライブラリを使用して、ブックマーク、ページ番号、およびマーカーをPDFドキュメントに追加することができます。
  • iTextライブラリを使用すると、PDF文書を複数のPDFに分割したり、複数のPDF文書を1つのPDFに結合したりすることもできます。
  • iTextを使って、PDFのフォームを編集することができます。
  • iTextは、pngやjpegなどの画像フォーマットから画像を使用してPDFを作成することもできます。
  • iTextライブラリは、既存のドキュメント上に様々な幾何学的形状を描画するために使用できるキャンバスクラスを提供します。
  • iTextには、PDFドキュメントにフォントや画像を追加および変更する機能があります。

Visual Studio で新しいプロジェクトを作成する方法

この記事では、コンソールアプリケーションを使用してPDFドキュメントを生成します。 まず、Microsoft Visual Studio アプリケーションを開き、ファイルメニューから「新しいプロジェクト」を選択し、「コンソールアプリケーション」を選択します。

Itextpdf Alternative Html To Pdf Csharp 1 related to Visual Studio で新しいプロジェクトを作成する方法

プロジェクト名を入力し、ファイルパスを選択してください。 次に、「Create」ボタンをクリックします。 以下のスクリーンショットに示されているように、希望する.NET Frameworkを選択してください。

Itextpdf Alternative Html To Pdf Csharp 2 related to Visual Studio で新しいプロジェクトを作成する方法

Microsoft Visual Studio は、選択したアプリケーションの構造を生成します。 コンソール、Windows、およびWebアプリケーションを選択した場合、program.csファイルが開き、ここでコードを入力してアプリケーションを構築/実行することができます。

Itextpdf Alternative Html To Pdf Csharp 3 related to Visual Studio で新しいプロジェクトを作成する方法

.NETフレームワークのバージョンを選択してください。 この例では、.NET 5.0を使用します

Itextpdf Alternative Html To Pdf Csharp 4 related to Visual Studio で新しいプロジェクトを作成する方法

次に、コードをテストするためにライブラリを追加します。

IronPDF ライブラリのインストール

IronPDFライブラリは、次の4つの方法でダウンロードおよびインストールできます:

Visual Studio の NuGet パッケージ マネージャーの使用

Visual Studio では、NuGet パッケージ マネージャー オプションを使用して、パッケージをソリューションに直接インストールできます。 以下のスクリーンショットは、NuGetパッケージマネージャーを開く方法を示しています。

Itextpdf Alternative Html To Pdf Csharp 5 related to Visual Studio の NuGet パッケージ マネージャーの使用

それはNuGetウェブサイトからパッケージを見つけるための検索ボックスを提供します。パッケージマネージャーでは、以下のスクリーンショットに示されているように、単に「IronPDF」を検索することができます。

Itextpdf Alternative Html To Pdf Csharp 6 related to Visual Studio の NuGet パッケージ マネージャーの使用

上記の画像では、関連検索結果のリストが表示されています。 パッケージをシステムにインストールするために、必要なオプションを選択してください。

4.2 Visual Studio コマンドラインの使用

Visual Studio ツールで、「ツール」->「NuGet パッケージ マネージャー」->「パッケージ マネージャー コンソール」に移動します。

パッケージ マネージャー コンソール タブに次の行を入力してください:

Install-Package IronPdf

パッケージは現在のプロジェクトにダウンロードされ、インストールされて使用する準備が整います。

Itextpdf Alternative Html To Pdf Csharp 7 related to 4.2 Visual Studio コマンドラインの使用

4.3 NuGetウェブサイトから直接ダウンロード

3つ目の方法は、ウェブサイトから直接NuGetパッケージをダウンロードすることです。

  • 以下に移動しますIronPDF NuGetページ
  • 右側のメニューから「download package」オプションを選択してください。
  • ダウンロードしたパッケージを開きます。 自動的にインストールされます。
  • ソリューションをリロードして、プロジェクトで使用を開始します。

4.4 IronPDFウェブサイトからの直接ダウンロード

ウェブサイトに訪問してくださいIronPDF 公式ダウンロードページをクリックして、ウェブサイトから最新のパッケージを直接ダウンロードしてください。ダウンロード後、以下の手順に従ってパッケージをプロジェクトに追加してください:

  • ソリューションウィンドウからプロジェクトを右クリックします。
  • オプション「reference」を選択し、ダウンロードしたリファレンスの場所を参照してください。
  • 参照を追加するには「OK」をクリックしてください。

5. iTextライブラリのインストール

iTextライブラリは4つの方法でダウンロードおよびインストールできます。

  • Visual StudioのNuGetパッケージマネージャーを使用する。
  • Visual Studio のコマンドラインを使用する。

    • 以下の内容を日本語に翻訳してください:

NuGetウェブサイトから直接ダウンロードします。

  • iText Sourceウェブサイトから直接ダウンロード。

    最初の3つのメソッドは、IronPDFとiTextライブラリの両方で同じです。 唯一の異なるメソッド。 Visual Studio を通じて iText を追加する際には、2 つのパッケージをインストールする必要があることに注意してください。

    まず、NuGetパッケージマネージャーでiTextを検索します。 itext7とiText.pdfhtmlは、機能がいくつかのパッケージに分かれているため、両方をインストールする必要があります。

    Itextpdf Alternative Html To Pdf Csharp 8 related to 5. iTextライブラリのインストール

    ビジュアルコマンドラインを好む場合、インストールするパッケージは以下の通りです:

Install-Package itext7
Install-Package itext7.pdfhtml

iText 7は最新版のため、私たちのソリューションでそのバージョンを使用しています。

5.1 iTextの公式ウェブサイトから直接ダウンロード

ソースコードはGitHubで公開されます。iText 7.

iText 7 PDFHtml モジュールは、以下のサイトから入手できます。i7n-pdfhtml GitHubリポジトリ.

iText 7 に関するすべてのクラスファイルを含むソースコードを取得し、ソリューションの参照としてソリューションに含めることができます。

Itextpdf Alternative Html To Pdf Csharp 9 related to 5.1 iTextの公式ウェブサイトから直接ダウンロード

URLからPDFを作成

PDFライブラリとウェブページソースからPDFへの変換機能の両方が役立ちます。 ウェブページのURLからPDFファイルを作成する方法を見てみましょう。

6.1 IronPDFの使用方法

IronPDFを使用して簡単にPDFを作成できます。 それは、URLからウェブページのソースファイルを生成し、新しいドキュメントに変換します。

以下の手順に従えば、簡単にPDFドキュメントを作成できます。

using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
        Pdf.SaveAs("result.pdf");

        // or optionally:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf");
        }
    }
}
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
        Pdf.SaveAs("result.pdf");

        // or optionally:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf");
        }
    }
}
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
		Dim Renderer As New IronPdf.ChromePdfRenderer()
		Dim Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program")
		Pdf.SaveAs("result.pdf")

		' or optionally:

		Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf")
		End Sub
	End Class
End Namespace
VB   C#

上記の例のように、ウェブページのURLをPDFドキュメントに変換して保存するための2つの方法が含まれています。 最初の方法はIronPDF PDFドキュメントを構築してドキュメントを作成する方法で、もう一つの方法はURLをレンダリングして同じ行にPDFとして保存する方法です。これはページソースをチャンクにダウンロードし、それをドキュメントに変換することで処理を高速化します。

上記の例では、RenderUrlAsPdf を使用してウェブページをドキュメントに変換しています。 リンクと保存場所のみを指定する必要があります。 PDF変換に7.3秒かかります。

6.2 iText の使用

iText PDFもPDFドキュメントを作成することができます。 iTextでは、URLからPDFを生成する必要があり、WebClient関数が必要です。 クライアント機能により、URLを文字列にダウンロードし、その文字列をPDFファイルに変換することができます。

iTextでは、PDFドキュメントを生成するために異なるクラスが必要です。 PdfWriterは、指定された場所に空のファイルを作成し、そのクラスのオブジェクトを作成することができるクラスです。 PdfDocumentは、PDFを読み込み、PDFドキュメントオブジェクトに書き込むのに役立つクラスでもあります。 PageSize は、ドキュメントのページ設定を扱うのに役立つクラスでもあります。

ConverterPropertiesは、PDF文書内のWebページ文字列をフォーマットするために使用されるクラスです。 ページの幅などを設定するさまざまなプロパティがあります。

HtmlConverterは、名前空間iText.Html2pdfのクラスです。 HTMLコンバータは、"ConvertToPdf "という関数を持つクラスです。 これは、ダウンロードしたWebページをPDFファイルに書き出すための静的関数です。しかし、HTMLコンバータにPdfWriterオブジェクトとConverterPropertiesオブジェクトをパラメータとして渡す必要があります。

using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.StyledXmlParser.Css.Media
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
	Dim writer As New PdfWriter("itext.pdf")
			Dim pdf As New PdfDocument(writer)
			Dim pageSize As New PageSize(850, 1700)
			pdf.SetDefaultPageSize(pageSize)
			Dim properties As New ConverterProperties()
			Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
			mediaDeviceDescription.SetWidth(pageSize.GetWidth())
			properties.SetMediaDeviceDescription(mediaDeviceDescription)
			Dim strdownload As String = (New WebClient()).DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program")
			HtmlConverter.ConvertToPdf(strdownload, pdf, properties)
		End Sub
	End Class
End Namespace
VB   C#

結果:

Itextpdf Alternative Html To Pdf Csharp 10 related to 6.2 iText の使用

以下は、IronPDFおよびiTextから生成されたPDFです。 左側のPDFはIronPDFから生成され、右側のPDFファイルはiTextによって生成されています。 以下は、PDFの生成にかかった時間です。

Itextpdf Alternative Html To Pdf Csharp 11 related to 6.2 iText の使用

結果はネットワーク帯域幅によって変わります。

7. HTMLを使ってPDFを作成する

IronPDFとiTextの両方がHTML文字列をPDFに変換する方法を提供します。 両方のライブラリは、これを簡単に行う方法を提供します。

7.1 IronPDFの使用

IronPDFを使用して、ウェブページのソースをドキュメントに変換することができます。 以下は、HTML文字列をドキュメントに変換する例です。 また、任意のタグ要素をPDFドキュメントに変換する機能も備えています。

var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf")
VB   C#

以下の例は、HTML文字列を変換するためにRenderHtmlAsPdfを使用する方法を示しています。 さらに、ウェブページのソースを文字列に変換する関数に、任意の数のHTML文字列を供給することができます。 文字列を取得した後、保存機能を使用してドキュメントを保存することができます。 プロセスを完了するのに2.7秒かかります。

7.2 iTextの使用

iText PDFを利用すると、ウェブページのソース文字列をPDFに変換することができます。 以下は、ウェブページソース文字列からドキュメントを作成する方法の例です。 任意のタグ要素を新しいドキュメントに変換することも可能です。

PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
Dim writer As New PdfWriter("itext.pdf")
Dim pdf As New PdfDocument(writer)
Dim pageSize As New PageSize(850, 1700)
pdf.SetDefaultPageSize(pageSize)
Dim properties As New ConverterProperties()
Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
mediaDeviceDescription.SetWidth(pageSize.GetWidth())
properties.SetMediaDeviceDescription(mediaDeviceDescription)
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties)
VB   C#

これはURLからPDFへの変換と似ています。 WebClientを削除するだけでなく、パラメータにウェブページのソース文字列を使用する必要があります。 これは指定された文字列を取得し、新しいドキュメントに変換します。

結果:

Itextpdf Alternative Html To Pdf Csharp 12 related to 7.2 iTextの使用

8. PDFドキュメントの読み取り

私たちは次のことができます。PDFドキュメントを読み取るIronPDFとEO.pdfを使用しています。

8.1 IronPDFの使用

IronPDFは、既存のPDFファイルを読み取るのに役立ちます。 以下はIronPDFを使用してPDFを読み込むためのサンプルです。

var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
Dim pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf")
Dim AllText As String = pdfDocument.ExtractAllText()
VB   C#

FromFileメソッドは、上のコードに示すように、既存のファイルからPDFを読み取り、PDFドキュメントオブジェクトに変換するために使用されます。 このオブジェクトを使用して、PDFページ上のテキストや画像を読み取ることができます。 処理を完了するのに数ミリ秒しかかかりません。

8.2 iText PDF の使用

iText ソフトウェアを使用すると、外部のリーダーを使用せずにドキュメントを読むこともできます。

using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
Using reader As New PdfReader("result.pdf")
				 text = New StringBuilder()
				Dim pdf As New PdfDocument(reader)
				Dim strategy = New LocationTextExtractionStrategy()
				Dim i As Integer = 1
				Do While i <= pdf.GetNumberOfPages()
					Dim pdfpage = pdf.GetPage(i)
					text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy))
					i += 1
				Loop
End Using
VB   C#

上記のコードは、PDFリーダーを使用してドキュメントを読み取ることができることを示しています。 ファイルの場所をパラメーターとして渡すだけで済みます。 PDFリーダーがドキュメントを読み取り、それをオブジェクトに変換します。このオブジェクトを使用して、すべてのページからテキストを読むことができます。そのためにはループを使用する必要があります。

結果:

Itextpdf Alternative Html To Pdf Csharp 13 related to 8.2 iText PDF の使用

9.PDFドキュメントの分割

IronPDFとiText PDFライブラリの両方は、ユーザーがページを別々の文書に分割することを可能にします。 両方とも、この目標を達成するための簡単な方法を提供します。

9.1 IronPDFの使用

IronPDFを使用すると、ドキュメントのページを別々のドキュメントに分割することができます。 以下は、ページを別々のドキュメントに分割する方法の例です。

var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfsplit"+i.ToString()+".pdf");
}
var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfsplit"+i.ToString()+".pdf");
}
Dim Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf")
For i As Integer = 0 To Splitdocument.PageCount - 1
	 Splitdocument.CopyPage(i).SaveAs("Ironpdfsplit" & i.ToString() & ".pdf")
Next i
VB   C#

次の例では、まずpdf-documentクラスのfromfileメソッドを使用して既存のドキュメントを読み込みます。 copypageメソッドで既存のドキュメントからページをコピーし、SaveAsメソッドでドキュメントを別のファイルに保存します。ページ番号はすべてゼロから始まります。 従って、0から始まるページ番号を提供する必要があります。

9.2 iText PDFの使用

PDF ドキュメントのページを分割するには、iText 7 を使用することもできます。しかし、まず itext.kernel.Utils 名前空間から PdfSplitter を継承する別のクラスファイルを作成する必要があります。これにより、PDF データを分割するためのインスタンスが作成されます。 こちらはコード例です:

using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Utils
Imports iText.StyledXmlParser.Css.Media

Namespace PdfConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Using pdfDoc = New PdfDocument(New PdfReader("result.pdf"))
				Dim outputDir = "Itext_{0}.pdf"
				Dim splitter = New CustomPdfSplitter(pdfDoc, outputDir)
				Dim splittedDocs = splitter.SplitByPageCount(1)
				For Each splittedDoc In splittedDocs
					splittedDoc.Close()
				Next splittedDoc
			End Using
			Console.ReadKey()
		End Sub
	End Class
	Public Class CustomPdfSplitter
		Inherits PdfSplitter

		Private dest As String
		Private partNumber As Integer = 1

		Public Sub New(ByVal pdfDocument As PdfDocument, ByVal dest As String)
			MyBase.New(pdfDocument)
			Me.dest = dest
		End Sub

		Protected Overrides Function GetNextPdfWriter(ByVal documentPageRange As PageRange) As PdfWriter
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: return new PdfWriter(String.Format(dest, partNumber++));
			Dim tempVar = New PdfWriter(String.Format(dest, partNumber))
			partNumber += 1
			Return tempVar
		End Function
	End Class
End Namespace
VB   C#

私たちは、pdfwriterをオーバーライドするカスタムクラスを作成し、元のファイル名を使ってカスタム名で分割ファイルの名前を変更できるようにしました。 後で新しいリスト項目としてPDFページを返し、それを別のドキュメントとして保存することができます。

結果:

Itextpdf Alternative Html To Pdf Csharp 14 related to 9.2 iText PDFの使用

結論

IronPDFはレンダリングしません。HTMLからPDFリモートサーバーから その代わりに、実際の標準に準拠したウェブブラウザのインスタンスを舞台裏で紡ぎ出します。(追加のソフトウェアをインストールする必要なしに). HTMLは完全な精度でレンダリングされ、商業印刷の最高基準に適したベクターフォーマットで提供されます。 出力はクリーンで高品質なPDFです。 したがって、IronPDFはiText PDFに対して優位性を持っています。 IronPDFは、効果的かつ効率的に作業を進めることを目指す実践的なプログラマーに強く推奨されます。 ライセンスと価格の詳細については、すべて同社のウェブサイトで公開されています。価格ページ.

iText PDFは複数のフォントをサポートしており、インラインスタイルシートのみを使用することができます。 それは、HTMLをPDFファイルに変換するためのエンジンやブラウザがないため、外部スタイルシートを追加することができません。 iTextはHTMLを正しく正確にレンダリングしますが、非常に大きなサイズのPDFファイルを作成します。 iTextは商用ライセンスおよび無料開発者ライセンスが付属しています。 iText ライセンスの詳細については、以下をご覧ください。iText Community と iText 7 ライセンスのページ.

IronPDFは、迅速かつ生産的に作業したい実用的なコーダーにとって必須のツールです。 最も重要な点は、時間を節約できることです。IronPDFのライセンスパッケージは、永久ライセンスを提供しており、継続的な費用がかかりません。

IronPdfはこちらからダウンロードできます。ダウンロードリンク.

< 以前
IronPDFとPDFreactorの比較
次へ >
IronPDFとGemBox.Pdfの比較