C#はPDFファイルをマージおよび分割する方法

時には以下の状況が出る場合があるかもしれません。必要のデータや資料などはいくつの部分として分割されて、複数のPDFで保存されています。読むとかセーブとかややこしいと感じていますので、この時はこれらの文書を一つにマージしたいでしょう、同じに、逆に特定の資料を手に入れたいから一つのPDFファイルを複数のファイルに分かれたい場合も存在しています。この記事で、無料のC#コンポーネント、Spire.PDFを使用して複数のPDFファイルを1つのPDFファイルにマージし、1つのPDFファイルを複数のPDFファイルに分割する方法を紹介しようと思います。

 

複数のPDFファイルをマージする

マージするコードは非常に簡単です、主に三つの手順があります。まずはマージするファイルを取得し、そしてpublicstaticPdfDocumentBaseMergeFiles(string InputFiles)メソッドを呼び起し、最後はこれらのファイルをマージして保存します。

コードは以下のようになります:

using Spire.Pdf;

namespace MergeAndSplit

{

    class Program

    {

        static void Main(string args)

        {

            string files = new string { "Sample1.pdf", "Sample2.pdf", "Sample3.pdf" };

            string outputFile = "result.pdf";

            PdfDocumentBase Doc = PdfDocument.MergeFiles(files);

            Doc.Save(outputFile,FileFormat.PDF);

            System.Diagnostics.Process.Start(outputFile);

        }

    }

}

マージする前の効果:

f:id:uha_noki:20211119152905p:plain

マージした後:

f:id:uha_noki:20211119153005p:plain

 

PDFファイルを分割する

PDFファイルを分割する場合、ファイルの各ページを1つのPDFファイルに個別に分割することを選択できます。また、ページ番号の範囲を設定して、複数のPDFファイルに分割することもできます。これからは二つの部分で説明します。

 

1. 指定されたページ範囲に従ってPDFファイルを分割します

ここは5ページのPDFファイルを二つの別のPDFファイルに分割します。

コードは以下のようになります:

using System.Drawing;

using Spire.Pdf;

using Spire.Pdf.Graphics;

namespace MergeAndSplit

{

    class Program

    {

        static void Main(string args)

        {

            PdfDocument pdf = new PdfDocument();

            pdf.LoadFromFile("File.pdf");

            PdfDocument pdf1 = new PdfDocument();

            PdfPageBase page;

            for (int i = 0; i < 5; i++)

            {

                page = pdf1.Pages.Add(pdf.Pages[i].Size, new PdfMargins (0));

                pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));

            }

            pdf1.SaveToFile("DOC_1.pdf");

            PdfDocument pdf2 = new PdfDocument();

            for (int i = 10; i < 5; i++)

            {

                page = pdf2.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));

                pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));

            }

            pdf2.SaveToFile("DOC_2.pdf");

        }

    }

}

分割する前:

f:id:uha_noki:20211119153039p:plain

分割した後:

f:id:uha_noki:20211119153051p:plain

2.  PDFファイルの各ページを個別のPDFファイルに分割します

前のパーツでマージしたPDFファイルの各ページを独立のPDFファイルに分割します。

コードは以下のようになります:

using System;

using Spire.Pdf;

 

namespace MergeAndSplit

{

    class Program

    {

        static void Main(string args)

        {

            PdfDocument doc = new PdfDocument("export.pdf");

            string pattern = "split-{0}.pdf";

            doc.Split(pattern);

            doc.Close();

        }

    }

}

効果は以下のように:

f:id:uha_noki:20211119153133p:plain

以上は今回の記事でした、読んでいただきありがとうございます。