|
|||||
2つのPDFファイルを1つのPDFファイルとして結合するサンプルです。 PDF出力ライブラリとしてiText.NET(iText.NET.2005-dll-1.4.6-1.cab)を使用しています。 iText.NETのダウンロードサイト:http://sourceforge.net/projects/itextdotnet/ iText.NETはvjslib.dll(J#.NET)を参照設定して使用します。 iText.NETのiText.dllとJSharpLib.dllを参照設定して使用します。 PDF関係のプログラムを最初から作るより、こちらのPDF結合ツールと連携した方が早いかもしれません。 PDF関係のサンプルソースは他にもあります。 PDFファイルを出力するサンプル(C#.NET) PDFファイルを分割するサンプル(C#.NET) 画像ファイルをPDF変換するサンプル(VB.NET) VB.NET版はこちらです。 PDFファイルを出力するサンプル(VB.NET) PDFファイルを分割するサンプル(VB.NET) PDFファイルを結合するサンプル(VB.NET) 画像ファイルをPDF変換するサンプル(VB.NET) 関連ツールはこちらです。 PDF出力・分割・結合(ツール/ソフト) ★フォームモジュール(Form1.cs) //--PDF結合サンプル--↓↓--PDF結合サンプル--↓↓--PDF結合サンプル--↓↓--PDF結合サンプル-- using System.IO; using com.lowagie.text; using com.lowagie.text.pdf; public partial class Form1 : Form { // (注意1)vjslib.dll(J#.NET)を参照設定する必要があります。 // (注意2)iText.dllを参照設定する必要があります。 // (注意3)JSharpLib.dllを参照設定する必要があります。 // (注意4)using com.lowagie.text; // (注意5)using com.lowagie.text.pdf; private void Button3_Click(object sender, EventArgs e) { // 出力用PDFオブジェクトの生成 Document dc = new Document(new PdfReader("test1.pdf").getPageSizeWithRotation(1)); // 出力用PDFファイルのオープン FileStream fs1 = new FileStream("test3.pdf", FileMode.Create, FileAccess.Write); // 出力用PDFオブジェクトとPDFファイルの関連付け PdfWriter wr1 = PdfWriter.getInstance(dc, fs1); // PDF出力開始 dc.open(); // PdfContentByte取得 PdfContentByte pcb = wr1.getDirectContent(); // 入力用PDFファイル毎の処理 for (int p = 1; p <= 2; p++) { // 入力用PDFファイルのオープン PdfReader rd = new PdfReader("test" + p + ".pdf"); // 入力用PDFファイルのページ数取得 int pn = rd.getNumberOfPages(); // PDF出力処理 for (int i = 1; i <= pn; i++) { // ページサイズ設定 dc.setPageSize(rd.getPageSizeWithRotation(i)); // 改ページ dc.newPage(); // ページ取得 PdfImportedPage pip = wr1.getImportedPage(rd, i); // ページ出力 if (rd.getPageRotation(i) == 0) { // 回転しない pcb.addTemplate(pip, 1.0F, 0, 0, 1.0F, 0, 0); } else { // 回転する pcb.addTemplate(pip, 0, -1.0F, 1.0F, 0, 0, rd.getPageSizeWithRotation(i).height()); } } } // PDF出力終了 dc.close(); } } //--PDF結合サンプル--↑↑--PDF結合サンプル--↑↑--PDF結合サンプル--↑↑--PDF結合サンプル-- |