9 返信 最新の回答 日時: Oct 29, 2007 9:17 PM ユーザー:(りょう)

    複数のフィールドを含むPDFファイルの結合をバッチ処理

      OS:windowsXP,2000
      acrobat5.0

      複数のフォームフィールドを含む2つ以上のPDFファイルの結合を、バッチ処理しようと思っているのですが、現在使用しているacrobat5.0では、不可能でした。

      そこで、コマンドラインでPDFファイルの結合が行えるフリーソフト「concatPDF」を利用して、バッチ処理を試してみました。すると結合後のファイルでは、いくつかのフォームフィール ドが失われてしまいます。

      元になるPDFファイルは、複数のフォームフィールドでjavascriptを利用した計算をさせています。

      最新のacrobat8では、PDFファイル結合のバッチ処理は可能でしょうか?
      あるいは、他のソフトで問題を解決できるでしょうか?
      ご存知の方、ご教示ください。よろしくお願いいたします。
        • 1. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
          Level 1
          もし、結合するPDFファイルそれぞれに
          同じ名前のフォームフィールドがあって、
          それぞれが別の値を保持していたら、
          結合した瞬間にひとつの値に変えられてしまうと思います。

          フォームフィールドはひとつの名前で、
          ひとつの値しか持てませんから。
          これは、5.0でも8.0でも大して変わらないと思います。

          >バッチ処理しようと思っているのですが、現在使用しているacrobat5.0では、不可能でした。

          ページの挿入コマンドで手動で行えば結合できたんでしょうか。
          手動でやって不具合が起きる状態ならば、
          バッチ処理も、他のフリーソフトでも無理だと思います。

          結合するファイルの作成方法や、
          名前、保存場所といった
          もう少し具体的な状況がわからないと、
          誰も検証できないと思います。
          • 2. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
            #「ryo3179」と「りょう」は同一人物です。IDを失念してこのようになってしまいました。申し訳ございません。

            habacchi様コメントありがとうございます。
            申し訳ございません。言葉足らずでした。
            具体的な状況をご説明させてください。長文失礼します。

            1)あるCADソフトで作成した図面データからPostScriptファイルを生成し、
            Acrobat Distiller5.0を使用して、Pdfファイルを作成しています。

            2)Pdfファイルの数は約1200個あります。そのファイル群から、
            別のプログラムを利用し、条件毎にフィルタリングされた約100個のファイルを
            取り出し、自身のcドライブにコピーします。

            3)その後、Acrobat5.0を立ち上げ、
            「ページの挿入コマンド」にて1つのファイルにします。

            4)出来上がったPdfファイルを立ち上げ、
            Accessのデータベースと連携させ、寸法を自動記入し出力します。

            1)〜4)のような業務改善システムを作ろうと考えております。

            今回、3)の動作を単純化したいと思い質問させていただきました。

            >もし、結合するPDFファイルそれぞれに
            >同じ名前のフォームフィールドがあって、
            >それぞれが別の値を保持していたら、
            >結合した瞬間にひとつの値に変えられてしまうと思います。

            結合後に値を書き換えますので、値が1つに変わることは問題ありません。
            今回のトラブルは、3)の単純化の為、コマンドラインが利用できるフリーソフト「ConcatPDF」を使って結合した所、フォームに計算値を表示させる為の演算スクリプトがランダムに1〜5 箇所程、消失してしまう。又、エラーでAcrobatが終了してしまうことがある。というものです。

            >ページの挿入コマンドで手動で行えば結合できたんでしょうか。

            正常に結合できました。

            この掲示板で申し上げるのは、不適切かもしれませんが、
            社内にシステム展開する上でのコストを考えると、
            できればフリーソフトで、バッチ処理を実現させたいです。

            しかし、Acrobat8の環境で容易にバッチ処理が実現できるのであれば、
            対象者全員にAcrobat8(standard、又はpro)を配布することも考えています。

            まだ、説明が不十分だと思いますが、
            ご教示よろしくお願いします。
            • 3. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
              Level 1
              質問投稿では、問題のPDF文書にはフォームフィールドが存在することが前提である。が、#2の手順ではどこでフォームフィールドを作成したのかが不明。

              > 条件毎にフィルタリングされた約100個のファイルを取り出し
              このフィルタリング方法が不明だが?
              せっかくPostScriptファイルを作成しているなら、PostScriptとして結合したほうが何かと便利かと思うが?

              つまり、手順2)において、個別のPDF文書をフィルタリングして元のPostScriptファイルを決定する。そうすれば、結合すべきPostScriptファイルは決まる。あとはPost Scriptを結合してPDF化すればよい。

              PostScriptファイルをコマンドラインで結合する方法はいつくかあるはず(Unix系で昔からある)。またAcrobatでもAcrobat Distiller で可能。以下のサポート文章を手始めにネット上にいくつか情報があるはず。

              文書番号:220200
              Acrobat Distiller 4.0/5.0(Mac/Win):Acrobat Distiller で Runfilex と Rundirex を使って複数の PostScript ファイルから 1 つの PDF を作成する

              PostScriptファイルを1つにまとめることが可能であれば、Distillerの監視フォルダ機能を使う方法もあるだろう。

              文書番号:221142
              Acrobat 5.0(Mac/Win):監視フォルダを使用して PostScript ファイルを PDF に変換する

              > 演算スクリプトがランダムに1〜5箇所程、消失してしまう。
              スクリプトとはAcrobat JavaScriptのことであろうか?
              Acrobat JavaScriptはアクション設定のメソッド(命令)もあるし、フィールド追加のメソッドもある。こういうのを利用して自動化する手もある。

              ・Acrobat Javascript 日本語版(pdf文書、2.97MB)
              http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf

              > 最新のacrobat8では、PDFファイル結合のバッチ処理は可能でしょうか?
              体験版があるので確かめてみればよいだろう。Acrobatは高い買い物である。自分の要求と合うかをじっくりと検討すべき。
              当然ながらAcrobat5は事前に削除すべきだが(自動削除?)、Acrobat5にはシビアなライセンス管理はないので、アンインストール→再インストールは特に問題ないだろう。

              ・Adobe Acrobat 8 Professional 30日間体験版
              http://www.adobe.com/jp/products/acrobatpro/tryout.html

              また1万円以下の低価格PDF編集ソフトには結合機能を持つものも多いし、体験版などがある場合もある。しらべてはどうか?

              Acrobat8へのアップグレードだと、Acrobat5が最低条件になり、次回バージョンからはアップグレード対象から外れるはず。また、AcrobatなどAdobe製品にはサイトライ センスもある。

              手許のAcrobat 7.0.9 Proでまったく同じフォームを持つPDF文書(名前だけ異なる)を、[ファイル/PDFの作成/複数のファイル]で結合させてみると、フォームが欠損することなくPDF文書が出来上がる。 当然、同じ名前のフォームフィールド名が存在している。

              Acrobat 7.0.9 Proでは、フォームを作成するときは自動的に連番になるが、ユーザが無理やり同じフィールド名にすることは可能である。
              帳票などで同じ内容のものに自動的に作成したい場合に同じフォームフィールド名にしてやると、片方の値が変更されると自動的にもう一方も変更される(ただしうまく動作しない場合もあるようだ) 。
              • 4. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                Level 1
                brazil様ありがとうございます。

                若輩者のため、ご教示いただいた内容を全て理解できず、今、懸命に調べています。

                とりあえず、先に答えられる内容を返信させていただきます。

                >質問投稿では、問題のPDF文書にはフォームフィールドが存在することが前提である。が、#2の手順ではどこでフォームフィールドを作成したのかが不明。

                1)で作成したPdf(図面)ファイルを開き、図面上で、可変する寸法の場所に、フォームフィールドを作成し、フィールドのプロパティでAcrobatJavascriptにて計算用のスクリ プトを記入しています。

                >> 条件毎にフィルタリングされた約100個のファイルを取り出し
                >このフィルタリング方法が不明だが?

                フィルタリング用アプリの概要です。
                VBで作った仕様入力アプリに仕様を入力して実行すると、必要な図面の図面番号がAccessファイルに出力されます。

                ファイルサーバ内にある約1200個のPdfファイルは、ファイル名が図面番号と同じですので、Accessファイルのデータを利用して自身のCドライブに必要なPdfファイル(約100個) をコピーします。

                >せっかくPostScriptファイルを作成しているなら、PostScriptとして結合したほうが何かと便利かと思うが?

                PsファイルをPdfファイルに変換してから、フォームフィールドのデザインをしているので、難しいです。

                >スクリプトとはAcrobat JavaScriptのことであろうか?

                そうです。

                >Acrobat JavaScriptはアクション設定のメソッド(命令)もあるし、フィールド追加のメソッドもある。こういうのを利用して自動化する手もある。

                ご教示いただいたテクニカルノートを参照しているのですが、「ページの挿入」のメソッドが見当たりませんでした。もし、あるならば是非利用したいと思います。

                >また1万円以下の低価格PDF編集ソフトには結合機能を持つものも多いし、体験版などがある場合もある。しらべてはどうか?

                2つ試しました。
                「瞬簡PDF ZERO v2」、「ConPDF」は、結合後フォームフィールドそのものを全て消失しました。

                又、先ほどの業務改善システムですが、1)の作業は、システム管理者が行います。
                2)〜5)の作業が、注文毎の繰り返し作業になります。
                • 5. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                  Level 1
                  どうもぼやかされていて、なんだかすっきりしない。

                  > 可変する寸法の場所に、フォームフィールドを作成し、フィールドのプロパティで
                  > AcrobatJavascriptにて計算用のスクリプトを記入しています。
                  「可変する寸法」って何であろうか? CAD使用者には容易に察しのつくことであろうか?
                  それに計算用のスクリプトでいったい何を計算させているのであろうか?

                  > ファイルをPdfファイルに変換してから、フォームフィールドのデザインをしているので、難しいです。
                  1200個のPDF文書のひとつひとつについてフォームフィールドのデザインをしたというのであろうか? それは意味のあることなのであろうか?
                  後でPDF結合をして1つにまとめるのであれば、結合後にフォームフィールドのデザインをしたほうがいいのではなかろうか? そうすれば、PDF結合でフォーム欠損という悩みもないと思うが?

                  PostscriptファイルにPDF文書特有のフォーム・しおり・リンクなどを追加するPDFMarkというのがある。

                  http://www.adobe.com/devnet/acrobat/pdfs/pdfmark_reference.pdf

                  > 「ページの挿入」のメソッドが見当たりませんでした。
                  「挿入」をキーワードにして検索すればすぐに見つかる。単に探していないだけでは?

                  PDFの結合が必須のように書いているが、本当にそうであろうか?
                  最終的にやりたいことはPDFの結合ではないようだし、その途中経過として必要としているみたいで、何だか疑問なのだか?

                  それから、「教えて!goo」にも投稿していない? かなり似た投稿が先週末にあるが。
                  • 6. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                    Level 1
                    >それから、「教えて!goo」にも投稿していない? かなり似た投稿が先週末にあるが。

                    申し訳ございません、私です。
                    ネチケット違反でした。
                    該当の質問は直ちに削除しました。

                    失礼をお許し下さい。
                    • 7. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                      tyatya@ Level 1
                      > 最新のacrobat8では、PDFファイル結合のバッチ処理は可能でしょうか?
                      ちなみに、あらかじめ定義されたバッチシーケンスとしてはありません。

                      あらかじめ定義されたバッチシーケンス
                      http://help.adobe.com/ja_JP/Acrobat/8.0/Professional/help.html?content=WS58a04a822e3e50102 bd615109794195ff-7c52.html

                      Acrobat の JavaScript について
                      http://help.adobe.com/ja_JP/Acrobat/8.0/Professional/help.html?content=WS58a04a822e3e50102 bd615109794195ff-7c98.html

                      バッチ処理の中でJavaScriptを実行させることはできるようですがあまり詳しくないので・・・。
                      もしかしたらこういうスクリプトが利用できるかもしれません。
                      http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf#page=51
                      (↑もし、指定ページが開かなかったら51ページ参照)
                      • 8. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                        Level 1
                        >「可変する寸法」って何であろうか? CAD使用者には容易に察しのつくことであろうか?

                        上手く表現できず申し訳ございません。
                        「ばね」の図面を例に申し上げますと、注文に応じて、"線径"、"ばねの長さ"、"ばねの直径"等が変わります。この寸法を「可変する寸法」と表現させていただきました。

                        >それに計算用のスクリプトでいったい何を計算させているのであろうか?

                        先ほどの仕様入力アプリから、図面番号データが記載されているACCESSファイルとは別に、主な「可変する寸法(変数)」をACCESSファイルに生成しようと考えています。

                        このACCESSファイルをデータソースにして、PDFファイル上の主なフォームフィールドに展開。しかし、それ以外のフォームフィールドは、計算用のスクリプトを利用して、主なフォームフィ ールドの値から計算させ様としています。

                        例えば、"ばねの直径"がφ20mmの場合、取付台座の図面上で台座径を表す寸法値の場所にフォームを作成し「"ばねの直径"+20mm」の様な計算をさせて出力します。

                        >1200個のPDF文書のひとつひとつについてフォームフィールドのデザインをしたというのであろうか? それは意味のあることなのであろうか?

                        現在は、1200個のPDFファイルを人力で選別しています。その為、1200個のPDFファイルを1つに結合し、更に図面の目次ページとデータ入力用のページを加えました。
                        情けない話ですが、1200個のPDFファイル全てにフォームフィールドをデザインしました。

                        >PostscriptファイルにPDF文書特有のフォーム・しおり・リンクなどを追加するPDFMarkというのがある。

                        今から、じっくり調べます。

                        >「挿入」をキーワードにして検索すればすぐに見つかる。単に探していないだけでは?

                        最初に上記の方法で調べましたが、たどり着けませんでした。まだ、見つかりません。しかし、私のJAVASCRIPTに対する知識不足が原因だと思いますので、理解できるまで探します。

                        >PDFの結合が必須のように書いているが、本当にそうであろうか?
                        >最終的にやりたいことはPDFの結合ではないようだし、その途中経過として必要としているみたいで、何だか疑問なのだか?

                        おっしゃる通りでした。
                        PDFの結合に固執していましたが、本当にやりたいことは、
                        「あるフォルダ内に集まった個々のPDF図面ファイルにデータベースから寸法値を読み込み、一括して“印刷したい”」
                        という事では無いかと気づきました。
                        もう一度、調べようと思います。

                        ありがとうございました。
                        • 9. Re: 複数のフィールドを含むPDFファイルの結合をバッチ処理
                          Level 1
                          kiki様ありがとうございます。
                          JAVASCRIPTの例文は大変参考になります。

                          明日は出張の為、検証できませんので、改めてコメントいたします。