製品比較

IronPDFとITextPDFの比較

更新済み 3月 31, 2022
共有:

イントロダクション

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ドキュメントを単一のPDFに結合したりすることができます。
  • iTextを使用してPDFのフォームを編集できます。
  • iTextは、pngやjpegなどの画像フォーマットから画像を使用してPDFを作成することもできます。
  • iTextライブラリは、既存のドキュメント上に様々な幾何学的形状を描画するために使用できるキャンバスクラスを提供します。
  • iTextには、PDFドキュメントにフォントや画像を追加および変更する機能があります。

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

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

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

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

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

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

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

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

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

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

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

  • IronPDFのウェブサイトから直接ダウンロードする。

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

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

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

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

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

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

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

Install-Package IronPdf

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

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

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

  • 次のリンクにアクセスしてください「https://www.nuget.org/packages/IronPdf/"
  • 右側のメニューから「download package」オプションを選択してください。
  • ダウンロードしたパッケージを開きます。 自動的にインストールされます。
  • ソリューションをリロードして、プロジェクトで使用を開始します。

4.4 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の両方をインストールする必要があります。 これらのパッケージは、その機能が複数のパッケージに分割されているためです。

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

Install-Package itext7
Install-Package itext7.pdfhtml

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

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

ソースコードはGitHubで利用可能です これ iText 7用

iText 7を取得できます これ.

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

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」という関数を持つクラスです。 以下の内容を日本語に翻訳してください:

これは、ダウンロードしたウェブページを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#

結果:

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

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

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を削除するだけでなく、パラメータにウェブページのソース文字列を使用する必要があります。 これは指定された文字列を取得し、新しいドキュメントに変換します。

結果:

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リーダーがドキュメントを読み取り、それをオブジェクトに変換します。このオブジェクトを使用して、すべてのページからテキストを読むことができます。そのためにはループを使用する必要があります。

結果:

ドキュメントの分割

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

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

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ページを返し、それを別のドキュメントとして保存することができます。

結果:

結論

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

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

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

こちらからIronPDFをダウンロードできます リンク.

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

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >