PdfSharpでPDFを結合する
Tweet
Tweet
←Next: [Python]所要時間で見るDataFrameの強さと弱点
Previous: Welcome to Jekyll! →
はじめに
PDFを結合するプログラムを日本語で調べると、出てくる多くはiTextSharpを使う方法です。
これでもいいのですが、無料版のライセンスがAPGLであり商用ソフトを作る場合には支障をきたします。
そこで今回は、MITライセンスのpdfSharpを用いてPDFを結合してみます。
※ライセンスの違いは以下の記事を参照
オープンソースライセンス、どれなら使っても良いの??
準備
まずはC#のプロジェクトをvisual studioで作成します。
次にそのプロジェクトにPdfSharpをインストールします。
1.プロジェクト > NuGet パッケージの管理を開く
2.検索欄に”pdfSharp”を入力する
3.右側”インストール”ボタンをクリックする
コード実装
いよいよコードを実装します。
まずはライブラリをコードにインポートします。
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
つついて実際に処理を実装します。
1.結合後PDFのオブジェクトを作成
// PDFオブジェクト作成
PdfDocument document = new PdfDocument()
2.結合するPDFを開く
// file:結合するファイルのパス
// PdfDocumentOpenMode.Import:PDFを読み取りモードで開く
// 結合するPDFオブジェクトを作成
PdfDocument inputDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import)
3.結合するPDFの全ページを結合後PDFに追加する
// 頁全件ループ
foreach (PdfPage page in inputDocument.Pages)
{
// PDF頁を追加
document.AddPage(page);
}
// 結合するPDFを閉じる
inputDocument.Close();
4.2,3を結合するPDFの数だけ繰り返す
5.PDFを保存し閉じる
// PDF保存
document.Save(selectedPath);
// PDFを閉じる
document.Close();
このようにして実際に作成したコードは以下の中の関数”pdfMerge”です。
PDFmerger/IOpg.cs
以下補足
・結合するファイルのパスはListにまとめておき、foreachを回して上記処理2~4を繰り替えすのがおすすめです。
・PDFオブジェクト作成時はusing句を使うことで、確実に処理終了時の解放ができます。
・例外処理(try-catch等)もお忘れなく。
ライセンス表記
PdfSharpはMITライセンスのライブラリで、使用する際はライセンスの表記が必要です。
ソースコード中やreadmeなどにライセンス表記を入れましょう。
/*
* PdfSharpライセンス表記
* Creator of PDFsharp is empira Software GmbH
* Kirchstrase 19 53840 Troisdorf Germany
* http://www.empira.de
* PDFsharp (R) is a registered trademark of empira Software GmbH
* Released under the MIT license
* http://www.pdfsharp.net/PDFsharp_License.ashx?AspxAutoDetectCookieSupport=1
*/
Tweet
←Next: [Python]所要時間で見るDataFrameの強さと弱点
Previous: Welcome to Jekyll! →