ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDF(ポータブルドキュメントフォーマット)ファイルは文書の共有や提示に広く使用されており、PDFを複数のファイルに分割する必要がある場合があります。 特定のページを抽出したり、大きなドキュメントを小さなセクションに分割したり、各章ごとに個別のファイルを作成したりする場合、PDFを分割することは様々なシナリオで貴重な作業となります。
この記事では、C# を使用して PDF を分割する方法について学びます。 C#は多用途で強力な言語であり、PDFを操作するためのライブラリがいくつか利用可能で、比較的簡単に操作することができます。 C#でPDFを分割するための以下の2つのライブラリについて探ります。
iText7ライブラリを最初にインストールしてください。
入力されたPDFファイルからPdfReaderを作成します。
PdfDocumentを使用してPDFコンテンツを操作します。
それぞれの分割ファイルのページ数を計算します。
初期ページ範囲の値を設定します。
ループを使用して、それぞれの分割ファイルを処理します。
現在の分割ファイルのために新しいPdfDocumentを作成します。
元のドキュメントから新しいドキュメントにページをコピーします。
次のイテレーションのためにページ範囲の値を更新します。
完了した出力PDFを保存します。
全てのファイルが作成されるまで繰り返します。
IronPDFは、.NETおよびJava、Python、Node.jsでPDFを生成、編集、読み取るための強力なツールです。プログラマー向けに最適化されており、コードからPDFファイルの作成を容易に行うことができます。IronPDFは、HTML、CSS、JavaScript、および画像をPDFドキュメントに変換する能力を提供します。
IronPDFは様々なライセンスオプションがあり、Lite License、Plus License、Professional License、Unlimited Licenseが用意されています。
技術サポートや詳細については、Iron Softwareの公式サイトをご覧ください。
IronPDFは、PDFファイルを操作するために設計された強力なC#ライブラリです。 以下の機能を提供します作成する, 修正、および抽出PDFドキュメントからの内容。 開発者はPDFをゼロから生成し、既存のPDFを編集することができます。結合または分割彼ら。 さらに、IronPDFはHTMLコンテンツをPDF形式に変換することに優れており、レポートやドキュメントの生成に役立ちます。 デジタル署名、セキュリティ機能、高品質な出力のサポートを備えたIronPDFは、.NETアプリケーションにおけるPDF関連のタスクを簡素化します。
iTextSharpは、.NETフレームワーク用の無料のPDFライブラリです。このライブラリは、PDFドキュメントの作成、操作、および検索のための強力なツールセットを提供します。iTextSharpを使用することで、プログラマーは簡単に複雑なPDFファイルを生成および操作することができます。
iTextSharpの主な機能:
iTextSharpは、商用およびオープンソースプロジェクトの両方で使用される、信頼性の高いツールです。
**テキストシャープ (iText 7)は、.NETフレームワークでPDFファイルを扱うための広く使用されているライブラリです。 それは、プログラム的にPDFドキュメントからコンテンツを作成、変更、抽出するための強力な機能を提供します。 開発者はiTextSharpを使用してPDFにテキスト、画像、表、およびその他のグラフィカル要素を追加することができます。 また、ドキュメントの組み立て、電子署名、アーカイブおよびアクセシビリティ基準への準拠もサポートしています。 もともとJavaライブラリであったiTextSharpは、.NETに移植され、開発者およびユーザーの活発なコミュニティがあります。
インストールするにはIronPDF NuGetパッケージVisual Studioのパッケージマネージャーコンソールを使用して、以下の手順に従ってください:
Visual Studioで、「ツール」 -> 「NuGetパッケージマネージャー」 -> 「パッケージマネージャーコンソール」に進みます。
:ProductInstall
これにより、IronPDFパッケージとその依存関係がプロジェクトにダウンロードおよびインストールされます。 インストールが完了したら、C#プロジェクトでPDF関連のタスクにIronPDFを使用し始めることができます。
別の方法として、Visual Studio の NuGet パッケージ マネージャーを使用して IronPDF をインストールするか、プロジェクト ファイルに直接パッケージを追加することができます。もう一つの方法は、パッケージをダウンロードすることです。公式ウェブサイトプロジェクトに手動で追加する。 各メソッドは、PDF関連の機能をC#プロジェクトに統合するための簡単な方法を提供します。
インストールするには**テキストシャープVisual Studio 内のパッケージマネージャーコンソールを使用して、次の手順に従います:
Visual Studioで、「ツール」 -> 「NuGetパッケージマネージャー」 -> 「パッケージマネージャーコンソール」に進みます。
Install-Package itext7
これにより、iTextSharpパッケージとその依存関係がプロジェクトにダウンロードおよびインストールされます。 インストールが完了したら、C#プロジェクトでiTextSharpを使用してPDFを操作し始めることができます。
IronPDFを使用してPDFファイルを複数のPDFファイルに分割することができます。 シンプルな方法でこれを実現します。 以下のコードは、ソースPDFファイルを入力として受け取り、複数のPDFファイルに分割します。
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
int firstPage = 1;
int lastPage = 2;
int totalPageInOneFile = sourceFile.PageCount / NumberOfSplitFiles;
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
// Copy multiple pages into a new document
PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
static void Main(string [] args)
{
string file = "input.pdf"'
// Call the SplitPdf method to split the PDF
SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles);
}
static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath);
int firstPage = 1;
int lastPage = 2;
int totalPageInOneFile = sourceFile.PageCount / NumberOfSplitFiles;
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
// Copy multiple pages into a new document
PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage);
string name = $@"{outputFolder}\SplitPDF_IronPDF_{i}.pdf";
newSplitPDF.SaveAs(name);
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
Shared Sub Main(ByVal args() As String)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' string file = "input.pdf"' SplitPdfUsingIronPDF(file, "output_split", NumberOfSplitFiles); } static void SplitPdfUsingIronPDF(string inputPdfPath, string outputFolder, int NumberOfSplitFiles) { PdfDocument sourceFile = PdfDocument.FromFile(inputPdfPath); int firstPage = 1; int lastPage = 2; int totalPageInOneFile = sourceFile.PageCount / NumberOfSplitFiles; for(int i = 1; i <= NumberOfSplitFiles; i++) { PdfDocument newSplitPDF = sourceFile.CopyPages(firstPage,lastPage); string name = string.Format("{0}\SplitPDF_IronPDF_{1}.pdf", outputFolder, i); newSplitPDF.SaveAs(name); firstPage = lastPage + 1; lastPage += totalPageInOneFile; } }
このコードの目的は、IronPDFライブラリを使用して、指定されたPDFファイルを複数の小さなPDFファイルに分割することです。 この機能を実現するために、SplitPdfUsingIronPDFメソッドが定義されています。
inputPdfPath: 入力PDFファイルのパスを表す文字列(例:"input.pdf").
出力フォルダ: 分割されたPDFファイルが保存される出力フォルダを表す文字列(例: "output_split").
SplitPdfUsingIronPDFメソッド内:
指定されたinputPdfPathからPDFをロードすることにより、sourceFileという名前のPdfDocumentオブジェクトが作成されます。
2つの整数変数、firstPage と lastPage が初期化されます。 これらは分割のためのページ範囲を表しています。
totalPageInOneFile は、ソースPDFの総ページ数を指定されたNumberOfSplitFilesで割ることによって計算されます。
ループは1からNumberOfSplitFilesまで繰り返します。
新しい PdfDocument オブジェクトが newSplitPDF という名前で作成されます。
最初のページから最後のページまで(包括的)sourceFileからnewSplitPDFにコピーされます。
結果として生成された小さいPDFは、「SplitPDF_IronPDF_1.pdf」などのファイル名で保存されます。(最初のスプリットのために)指定された出力フォルダーに。
"input.pdf" を実際の入力PDFファイルのパスに置き換えてください。IronPDFライブラリが適切にインストールされ、プロジェクトに参照されていることを確認してください。
出力ファイルは次のように作成されます:
次に、iTextSharpを使用してPDFドキュメントを複数のPDFファイルに分割します。 以下のコードは、ソースファイルを入力として受け取り、そのPDFドキュメントを複数の小さいファイルに分割します。
static void Main(string [] args)
{
string inputPath = "input.pdf";
// Output PDF files path (prefix for the generated files)
string outputPath = "output_split";
int NumberOfSplitFiles = 3;
// Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, NumberOfSplitFiles);
}
static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
using (PdfReader Reader = new PdfReader(inputPdfPath))
{
using (PdfDocument doc = new PdfDocument(Reader))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
static void Main(string [] args)
{
string inputPath = "input.pdf";
// Output PDF files path (prefix for the generated files)
string outputPath = "output_split";
int NumberOfSplitFiles = 3;
// Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, NumberOfSplitFiles);
}
static void SplitPdfUsingiTextSharp(string inputPdfPath, string outputFolder, int NumberOfSplitFiles)
{
using (PdfReader Reader = new PdfReader(inputPdfPath))
{
using (PdfDocument doc = new PdfDocument(Reader))
{
int totalPageInOneFile = doc.GetNumberOfPages() / NumberOfSplitFiles;
int firstPage = 1;
int lastPage = totalPageInOneFile; // int pagenumber
for (int i = 1; i <= NumberOfSplitFiles; i++)
{
string filename = $@"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf";
using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(filename))) // create output file
{
//pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument);
}
firstPage = lastPage + 1;
lastPage += totalPageInOneFile;
}
}
}
}
Shared Sub Main(ByVal args() As String)
Dim inputPath As String = "input.pdf"
' Output PDF files path (prefix for the generated files)
Dim outputPath As String = "output_split"
Dim NumberOfSplitFiles As Integer = 3
' Call the SplitPdf method to split the PDF
SplitPdfUsingiTextSharp(inputPath, outputPath, NumberOfSplitFiles)
End Sub
Shared Sub SplitPdfUsingiTextSharp(ByVal inputPdfPath As String, ByVal outputFolder As String, ByVal NumberOfSplitFiles As Integer)
Using Reader As New PdfReader(inputPdfPath)
Using doc As New PdfDocument(Reader)
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim totalPageInOneFile As Integer = doc.GetNumberOfPages() / NumberOfSplitFiles
Dim firstPage As Integer = 1
Dim lastPage As Integer = totalPageInOneFile ' int pagenumber
For i As Integer = 1 To NumberOfSplitFiles
Dim filename As String = $"{outputFolder}\SplitPDF_iTextSharp_{i}.pdf"
Using pdfDocument As New PdfDocument(New PdfWriter(filename)) ' create output file
'pdfDocument.get
doc.CopyPagesTo(firstPage, lastPage, pdfDocument)
End Using
firstPage = lastPage + 1
lastPage += totalPageInOneFile
Next i
End Using
End Using
End Sub
上記のコードは、iTextSharpを使用して大きなPDFファイルを小さな部分に分割する方法を示しています。それぞれの小さなPDFドキュメントには、元のドキュメントの一部が含まれます。
主な機能は、SplitPdfUsingiTextSharpメソッドにカプセル化されています。
SplitPdfUsingiTextSharpメソッド内:
指定されたinputPdfPathからPDFを読み込み、PdfReaderオブジェクトReaderが作成されます。
Reader を使用して、DOC という名前の PdfDocument オブジェクトが初期化されます。
ループは1からNumberOfSplitFilesまで繰り返します。
新しい小さなPDFファイルが「SplitPDF_iTextSharp_1.pdf」というファイル名で作成されます。(最初のスプリットのために)指定された出力フォルダーに。
新しいPDFドキュメント内(PDFドキュメント)ページはオリジナルドキュメントからコピーされています:
最初のページから最後のページまで(包括的)コピーされます。
より小さなPDFが保存されました。
iTextSharpライブラリが適切にインストールされ、プロジェクトに参照されていることを確認してください。 「input.pdf」を実際の入力PDFファイルのパスに置き換えてください。
iTextSharpとIronPDFの2つの分割メソッドを比較するために、いくつかの要素に基づいて評価しましょう:
使いやすさ:
iTextSharp: iTextSharpの方法は、PdfReader、PdfDocument、およびPdfWriterを作成することです。 ページ範囲を計算し、ページを新しいドキュメントにコピーします。 このアプローチには、iTextSharp APIを理解することが必要です。
コードの読みやすさ
iTextSharp: そのコードにはより多くのステップが含まれており、少し長くなり、読み取りにくさが増す可能性があります。
パフォーマンス:
iTextSharp: PdfDocument インスタンスの繰り返しの作成および破棄により、パフォーマンスに影響を与える可能性があります。
メモリ使用量:
iTextSharp: 複数のPdfDocumentインスタンスを作成すると、より多くのメモリを消費します。
結論として、iTextSharpとIronPDFの両方がC#でPDFファイルを分割するための堅牢なソリューションを提供し、それぞれに独自の利点があります。 IronPDFは、そのシンプルさ、読みやすさ、そしてより簡潔なアプローチによる潜在的なパフォーマンスの向上で際立っています。
汎用性と使いやすさのバランスを求める開発者には、IronPDFが魅力的な選択肢となるでしょう。さらに、IronPDFは無料試用. 最終的に、iTextSharpとIronPDFの選択は、各プロジェクトの要件および好まれる開発スタイルに依存します。
9つの .NET API製品 オフィス文書用