.NET で PDF を別々のファイルに分割する方法
この記事では、PDFファイルをページごとに別々のドキュメントに分割する方法や、Aspose.PDF Splitter for .NET を使用してカスタマイズされた範囲を示しています。
現実世界問題
PDFから特定のページやセグメントを抽出することは一般的なビジネスの必要性ですが、それを手動で行うことはエラー予防的でゆっくりです。
ソリューション概要
Aspose.PDF Splitter for .NET では、PDF ファイルをプログラム的に分割することを可能にします - 個々のページまたはカスタマイズされたページグループによって - 小さなコードで。
原則
- Visual Studio 2019 以降
- .NET 6.0 またはそれ以降
- NuGet を介してインストールされた .NET のための Aspose.PDF
PM> Install-Package Aspose.PDF
ステップ・ステップ・実施
ステップ1:インストールおよび設定 Aspose.PDF
必要な名称を追加する:
using Aspose.Pdf.Plugins;
using System.IO;
ステップ2:PDFを別々のファイルに分割する(出力ごとに1ページ)
最もシンプルな使用ケースでは、各ページを新しいPDFに分けます。
var inputPath = @"C:\Samples\sample.pdf";
var outputPath1 = @"C:\Samples\SplitPage1.pdf";
var outputPath2 = @"C:\Samples\SplitPage2.pdf";
var splitter = new Splitter();
var options = new SplitOptions();
options.AddInput(new FileDataSource(inputPath));
options.AddOutput(new FileDataSource(outputPath1));
options.AddOutput(new FileDataSource(outputPath2));
splitter.Process(options);
使用ケース&アプリケーション(コード変数)
1. すべてのページを複数ページのPDF(バッチモード)に分けます。
各ページを別々のファイルに分割するには、出力をダイナミックにリストします。
string inputPath = @"C:\Samples\multipage.pdf";
int pageCount = 10; // Set to your PDF's total pages
var splitter = new Splitter();
var options = new SplitOptions();
options.AddInput(new FileDataSource(inputPath));
for (int i = 1; i <= pageCount; i++)
{
string outPath = $@"C:\Samples\SplitPage_{i}.pdf";
options.AddOutput(new FileDataSource(outPath));
}
splitter.Process(options);
2. カスタムページランキングによる分割
現在、Splitter プラグインは、提供された出力ルートの順序に基づいてファイルに分けられています - 分割セグメントごとに 1 つの出力をファイルです. カスタマイズラインを抽出するには(たとえば、1-3、4-6 ページ)、最初に完全な Aspose.PDF API を使用してレイヤーを新しいファイルに入れ、必要に応じてさらに分割する必要があります。
それぞれのカスタマイズ範囲で、一時的なPDFを作成し、上記のようにスプレーターを使用して分割を完了します。
3. Batch Split All PDFs in a フォルダー
複数のPDFを同時に分割する自動化:
string[] pdfFiles = Directory.GetFiles(@"C:\Samples\SplitQueue", "*.pdf");
foreach (var file in pdfFiles)
{
var splitter = new Splitter();
var options = new SplitOptions();
options.AddInput(new FileDataSource(file));
// Optionally, auto-generate output paths for each file/page
for (int i = 1; i <= 2; i++) // adjust for actual page count
{
string outPath = Path.Combine(@"C:\Samples\SplitResults", $"{Path.GetFileNameWithoutExtension(file)}_page{i}.pdf");
options.AddOutput(new FileDataSource(outPath));
}
splitter.Process(options);
}
4. カスタム出力名と組織
コード論理を使用して、入力ファイル、日付、またはページに基づいて出力をファイル名を定義するには、複数の操作における分割ファイルの追跡および組織を改善します。
共通の課題と解決策
チャレンジ:必要な出力ファイルの正確な数を知るソリューション: 完全な Aspose.PDF ライブラリを使用するか、時間の前にページ数を読み、その後、正しい出力数を作成します。
課題: メタデータまたは記録を保持するソリューション: スプリッターはコンテンツを保存し、高度なニーズ(メタデータ転送、ブックマーク)、追加の Aspose.PDF APIs を使用します。
パフォーマンスと最良の実践
- 常に分割する前にオリジナルのPDFをバックアップする
- 過剰書き込みを防ぐための自動出力名称
- すべての予想されるページ/ファイルが作成されることを保証するために出力を確認します。
- 高度な分割(ブックマーク、サイズ)については、主な Aspose.PDF ライブラリをご覧ください。
完全実施例
using Aspose.Pdf.Plugins;
using System;
using System.IO;
class Program
{
static void Main()
{
var inputPath = @"C:\Samples\sample.pdf";
var outputPath1 = @"C:\Samples\SplitPage1.pdf";
var outputPath2 = @"C:\Samples\SplitPage2.pdf";
var splitter = new Splitter();
var options = new SplitOptions();
options.AddInput(new FileDataSource(inputPath));
options.AddOutput(new FileDataSource(outputPath1));
options.AddOutput(new FileDataSource(outputPath2));
splitter.Process(options);
}
}
結論
Aspose.PDF Splitter for .NET は、ファイルをアーカイブ、抽出、または配布するための PDF の迅速かつ自動分割を可能にします. プラグインを使用して、ページごとにシンプルな 分割、カスタマイズされた範囲処理、およびバッチ作業 - アプリケーションの PDF 管理をストリーミングします。