GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の、製品のTIPSや発売などに関する最新情報をお届けします。

GrapeCity

DioDocsで複数のPDFファイルをまとめて1つにできますか?

2018年10月に発売を開始したドキュメントAPIライブラリシリーズ「DioDocs(ディオドック)」は最初のバージョンアップを迎えました。2019年2月27日に提供を開始したバージョンでは、おもにPDF関連機能が強化されています。


最も利用したい機能のひとつ、が無かった

DioDocsを利用すると、開発環境や運用環境で専用ソフトウェアを使うことなく、業務システムからの入出力などで利用される文書ファイルを生成、更新する仕組みをアプリケーションに組み込みできます。

たとえばPDF文書をライブラリのAPIを使い作成することができます。しかし利用方法としては、既存のPDFファイルを更新することのほうが現実的です。
詳細なレイアウトの帳票は、ActiveReportsのような専用帳票ツールを利用したほうが高い生産性で実現します。

その点、DioDocsはUIが無いライブラリなので軽快に動作するため、「帳票」よりも「PDFファイル」として扱うことに長けています。

以前紹介したCodeZineの記事
.NET向けExcel・PDF操作ライブラリ「DioDocs」の衝撃! その魅力に迫る
でも、DioDocsの魅力として挙げられています。

しかし、この記事の4ページ目に上記の見出しにも書いた、以下のコメントがありました。

ただしDioDocs for PDFについては、個人的には最も利用したい機能の1つが日本版にはまだリリースされていませんでした。具体的には複数のPDFを結合する機能です。

この時は先行リリースしている英語版を利用して回避しましたが、PDFの結合機能は今回の新バージョンに搭載しました。

複数のPDFファイルをまとめる方法

PDF結合機能をコードで実装する手順は簡単です。

  1. 対象PDFファイルを読み込むためのオブジェクトを生成
  2. 結合後のPDFオブジェクトを準備
  3. 結合対象の各ファイルを読み込み
  4. 結合処理
  5. 完成したPDFオブジェクトをファイルに保存

手順ごとのコードを解説します。
以下の例では3つのファイルを結合します。
なお、DioDocs for PDFの基本的な利用方法は記事*1や製品情報ページで*2で解説しています。

オブジェクトの生成

GcPdfDocumentクラスのインスタンスを生成します。

// 結合処理用
GcPdfDocument doc = new GcPdfDocument();
// 対象ファイル用
GcPdfDocument doc_conn = new GcPdfDocument();
ファイルの読み込み

docオブジェクトにファイルを読み込みます。
読み込むファイルは、操作をする間は有効である必要があるので、Usingで囲みます。

using (var fs0 = new FileStream("base.pdf"), FileMode.Open, FileAccess.Read))
using (var fs1 = new FileStream("con_A.pdf"), FileMode.Open, FileAccess.Read))
{
    doc.Load(fs0); // 元のファイルを読み込み
    doc_conn.Load(fs1); // 結合するファイルを読み込み
     :
}
ファイルの結合

読み込んだファイルをMergeWithDocument()メソッドで結合します。

     :
    // docにdoc_connを結合
    doc.MergeWithDocument(doc_conn, new MergeDocumentOptions());
     :
ファイルの保存

最後にファイルを保存するとひとつにまとまったPDFファイルが完成します。

     :
    // 結合したdocオブジェクトを保存
    doc.Save("Merged.pdf");
}

結合したサンプルファイルを入手

実際に動作するPDF結合機能はデモサイトでお試しできます。
デモでは上記の手順に加え、先頭に結合を解説する画像のページを追加しています。
異なるレイアウトのファイルを結合した結果もダウンロード可能です。

Webページ上で実行結果を確認することができますが、 C#とVisual Basic.NETの2種類コードを用意していますので、プロジェクトごとダウンロードして試すことができます。
なお、デモで利用しているPDFファイルは、製品紹介資料や価格表などビジネス色が強めですのでご了承ください。

DioDocs for PDFデモ

PDFのマージ | DioDocs for PDF デモアプリケーション

また、CodeZine記事をはじめ、DioDocsを解説する記事を製品情報ページにリンクをまとめています。
興味のある記事からご覧ください。


関連情報

[DioDocs for PDF] 複数のPDFファイルを1つのPDFに出力できますか? - DioDocs for PDF - ナレッジベースの詳細|Developer Tools - グレープシティ株式会社

  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉ではエンジニア経験者を幅広く募集しています。
  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の製品のデモアプリケーションをお試しください。