|
PDFファイルを結合するサンプル(VB.NET)

|
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ファイルを出力するサンプル(VB.NET)
PDFファイルを分割するサンプル(VB.NET)
★フォームモジュール(Form1.vb)
Imports System.io
Imports com.lowagie.text
Imports com.lowagie.text.pdf
Public Class Form1
' (注意1)vjslib.dll(J#.NET)を参照設定する必要があります。
' (注意2)iText.dllを参照設定する必要があります。
' (注意3)JSharpLib.dllを参照設定する必要があります。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' 出力用PDFオブジェクトの生成
Dim dc As Document = New Document(New PdfReader("test1.pdf").getPageSizeWithRotation(1))
' 出力用PDFファイルのオープン
Dim fs1 As FileStream = New FileStream("test3.pdf", FileMode.Create, FileAccess.Write)
' 出力用PDFオブジェクトとPDFファイルの関連付け
Dim wr1 As PdfWriter = PdfWriter.getInstance(dc, fs1)
' PDF出力開始
dc.open()
' PdfContentByte取得
Dim pcb As PdfContentByte = wr1.getDirectContent()
' 入力用PDFファイル毎の処理
For p As Integer = 1 To 2
' 入力用PDFファイルのオープン
Dim rd As PdfReader = New PdfReader("test" & p & ".pdf")
' 入力用PDFファイルのページ数取得
Dim pn As Integer = rd.getNumberOfPages()
' PDF出力処理
For i As Integer = 1 To pn
' ページサイズ設定
dc.setPageSize(rd.getPageSizeWithRotation(i))
' 改ページ
dc.newPage()
' ページ取得
Dim pip As PdfImportedPage = wr1.getImportedPage(rd, i)
' ページ出力
If rd.getPageRotation(i) = 0 Then
' 回転しない
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())
End If
Next
Next
' PDF出力終了
dc.close()
End Sub
End Class