.NET 5を使用してPDFファイルをマージする

すべての入力PDFファイルを連結し、1つのPDFファイルを生成するには、PdfFileEditorクラスのConcatenateメソッドを呼び出すだけです。PDFファイルの連結を練習するためのアプリケーションを作成しましょう。Visual Studio.NET 2019を使用してアプリケーションを作成します。

PDFファイルをさまざまな方法で連結する方法

フォームには、PDFファイルを参照するためのそれぞれのリンクラベル(linkLabel1、linkLabel2、linkLabel3)を持つ3つのテキストボックス(textBox1、textBox2、textBox3)があります。「参照」リンクラベルをクリックすると、PDFファイルを選択できる入力ファイルダイアログ(inputFileDialog1)が表示されます。

private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
    if (openFileDialog1.ShowDialog()==DialogResult.OK)
    {
        textBox1.Text=openFileDialog1.FileName;
    }
}

PDFファイルの連結のためのPdfFileEditorクラスのデモンストレーションとして、ウィンドウフォームアプリケーションのビューが表示されています。

PDFファイルを連結する

PDFファイルを選択してOKボタンをクリックすると、関連するテキストボックスに完全なファイル名とパスが割り当てられます。

PDFファイルを選択

同様に、以下のように2つまたは3つの入力PDFファイルを選択して連結できます。

2つまたは3つの入力PDFファイルを選択

最後のテキストボックス(textBox4)には、出力PDFファイルの名前とともに出力ファイルが作成される宛先パスを入力します。

出力PDFファイルの宛先パス

Concatenateメソッド

Concatenate()メソッド

Concatenate()メソッドは3つの方法で使用できます。それぞれを詳しく見てみましょう。

アプローチ1

  • Concatenate(string firstInputFile, string secInputFile, string outputFile)

このアプローチは、2つのPDFファイルを結合する必要がある場合にのみ適しています。最初の2つの引数(firstInputFileとsecInputFile)は、連結する2つの入力PDFファイルの完全なファイル名とその保存パスを提供します。3番目の引数(outputFile)は、出力PDFファイルの希望するファイル名とパスを提供します。

ファイル名を使用して2つのPDFを連結

private void button1_Click(object sender, System.EventArgs e)
{
    var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
    pdfEditor.Concatenate(textBox1.Text,textBox2.Text,textBox4.Text);
}

アプローチ2

  • Concatenate(Stream firstInputStream, Stream secInputStream, Stream outputStream)

上記のアプローチと同様に、このアプローチも2つのPDFファイルを結合することを可能にします。最初の2つの引数(firstInputStreamとsecInputStream)は、連結する2つの入力PDFファイルをストリームとして提供します(ストリームはビット/バイトの配列です)。3番目の引数(outputStream)は、希望する出力PDFファイルのストリーム表現を提供します。

ファイルストリームを使用して2つのPDFを連結

private void button2_Click(object sender, System.EventArgs e)
{
    using (var pdf1 = new FileStream(textBox1.Text, FileMode.Open))
    {
        using (var pdf2 = new FileStream(textBox2.Text, FileMode.Open))
        {
            using (var outputStream = new FileStream(textBox4.Text, FileMode.Create))
            {
                var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
                pdfEditor.Concatenate(pdf1, pdf2, outputStream);
            }
        }
    }
}

アプローチ3

  • Concatenate(Stream inputStreams[], Stream outputStream)

2つ以上のPDFファイルを結合したい場合、このアプローチが最適です。最初の引数(inputStreams[])は、連結する入力PDFファイルをストリームの配列として提供します。2番目の引数(outputStream)は、希望する出力PDFファイルのストリーム表現を提供します。

ストリームの配列を使用して複数のPDFを連結

private void button3_Click(object sender, System.EventArgs e)
{
    using (var pdf1 = new FileStream(textBox1.Text, FileMode.Open))
    {
        using (var pdf2 = new FileStream(textBox2.Text, FileMode.Open))
        {
            using (var pdf3 = new FileStream(textBox3.Text, FileMode.Open))
            {
                var pdfStreams = new Stream[] { pdf1, pdf2, pdf3 };
                using (var outputStream = new FileStream(textBox4.Text, FileMode.Create))
                {
                    var pdfEditor = new Aspose.Pdf.Facades.PdfFileEditor();
                    pdfEditor.Concatenate(pdfStreams, outputStream);
                }
            }
        }
    }
}