人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

00001から10000までの10000フォルダがあり
その中にそれぞれ、
「雛形.pdf」「[フォルダ名]-表面.pdf」「[フォルダ名]-裏面.pdf」
という3種類のPDFがあります。

この3種類のPDFをそれぞれ結合して
10000ファイルのPDFを作成したいです。

何か方法はありますでしょうか?

ソフトはAcrobat8ぐらいしか所有しておりません。
バッチなどでできると良いのですが・・・。

どうぞよろしくお願いいたします。

●質問者: ohtsu6
●カテゴリ:コンピュータ
✍キーワード:PDF ソフト バッチ ファイル フォルダ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● easygoings
●300ポイント

すみません、アイデアのみで回答します。

ConcatPDFという、フリーのソフトで、CUIベースでPDFの結合ができる

ようですので、バッチファイルを書いたら、できそうです。

ConcatPDF

http://www.ujihara.jp/ConcatPDF/ja/

◎質問者からの返答

easygoingsさま

ご紹介どうもありがとうございます。

試してみます。


2 ● Mook
●1400ポイント ベストアンサー

すでに紹介がありましたが、ConcatPDF を使用した VBS での実装例です。

先頭で定義した roorFolder(D:\pdfFiles ) 下に00001~10000 フォルダがあると

想定した処理です。


concatPDF は私も愛用していましたが、CUI で使用できるとは今回まで知りませんでした。


一応簡単な動作確認はしていますが、あまり高速にはできないようです。

ですから実行中はログファイルを時々見て進捗状況を確認してみてください。

Option Explicit

Const rootFolder = "D:\PDFFiles"  'PDF フォルダがある位置
Const logFilePath = "D:\concatPDF.log" '実行履歴を出力

Public objFso
Set objFso = CreateObject( "Scripting.FileSystemObject" )

public objLogFile
Set objLogFile = objFso.CreateTextFile( logFilePath, true )

public objShell
Set objShell = CreateObject( "WScript.Shell" )

Dim pFolder
For Each pFolder In objFso.GetFolder( rootFolder ).SubFolders
ConcatPDF pFolder
Next
'----------------------------------------------------------------
Sub ConcatPDF( objFolder )
'----------------------------------------------------------------
dim pdfFile1, pdfFile2, pdfFile3

pdfFile1 = pFolder.Path & "\雛型.pdf"
pdfFile2 = pFolder.Path & "\" & pFolder.Name & "-表面.pdf"
pdfFile3 = pFolder.Path & "\" & pFolder.Name & "-裏面.pdf"
if objFso.FileExists( pdfFile1 ) = false Then
objLogFile.WriteLine Date & " " & Time & ":" & pdfFile1 & " がありません。"
Exit Sub
End If
if objFso.FileExists( pdfFile2 ) = false Then
objLogFile.WriteLine Date & " " & Time & ":" & pdfFile2 & " がありません。"
Exit Sub
End If
if objFso.FileExists( pdfFile3 ) = false Then
objLogFile.WriteLine Date & " " & Time & ":" & pdfFile3 & " がありません。"
Exit Sub
End If

Dim meargedPDF

meargedPDF = """" & pFolder.Path & "\" & pFolder.Name & ".pdf"""

On Error Resume Next
Err.Clear
objShell.Run """C:\Program Files\ConcatPDF\ConcatPDF.exe"" /outfile " & meargedPDF _
 & " """ & pdfFile1 & """ """ & pdfFile2 & """ """ & pdfFile3 & """", 0, True
On Error Goto 0
If Err.Number <> 0 Then
objLogFile.WriteLine "concatPDF の実行に失敗しました。"
objLogFile.WriteLine " " & Err.Number & " : " & Err.Description
Err.Clear
Else
objLogFile.WriteLine meargedPDF & " を作成しました。"
End If
End Sub
◎質問者からの返答

Mookさま

できました。ログの件もありがとうございます。

もし可能でしたら変更をお願いさせていただきたいです。

現在の設定では、各フォルダ内にPDFを保存する仕様になっていますが、

「'PDF フォルダがある位置」のように

保存先のフォルダも指定できるようにしたいです。

どうぞよろしくお願いいたします。


3 ● h_kondo
●100ポイント

pdftkというツールを使えばよろしいかと思います。

使い方は

http://www-utheal.phys.s.u-tokyo.ac.jp/~yuasa/wiki/index.php/Pdf...

ダウンロードはこちら

http://www.accesspdf.com/pdftk/

◎質問者からの返答

h_kondoさま

どうもありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ