JavaScript, Adobeに関する質問です。

急ぎなので、もし10:20までに有効な回答があればその方にお気持ちのみですが300ポイント差し上げます。

・質問内容
プログラムについて質問いたします。お力を貸してください。
コメントにプログラムと実行結果(エラーが返ってくる)を示しますので、修正の方法を教えて頂きたいと思います。

・目的
今、あるフォルダにpdfのファイルがたくさんはいっています。
ここから、あるエクセルのA列に沿って指定されたpdfを次々と印刷していくプログラムを作りたいです。

・手法
ツールはAcrobatでプリンタはデフォルトで指定しているものを使用します。
今、同フォルダのBook1.xlsのSheet1シートのA列に書いてある a.pdf b.pdf c.pdf・・・をデフォルトのプリンタで連続して印刷したいと思います。

・他
その他質問も答えたいと思います。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/10/25 03:52:10
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:KUROX No.2

回答回数3542ベストアンサー獲得回数140

ポイント50pt

コマンドライン等で、

AcroRd32.exe /cjs /t "ファイル名";

を実行してみて、これで動くかどうかを確認するのが原因の切り分けに

なると思われます。

Googleのキャッシュにしか残ってませんでしたが

>/cjsオプションが7.0で追加されたものの、8.1で廃止されたので、

>スクリプト。 Adobe Reader 6.0 ~ 8.1 用. PDF印刷. ....

>START ACRORD32.EXE /n /t "ファイル" "プリンタ名" 印刷設定画面非表示

>いずれの場合も印刷後、アプリが残るので、 ...

AcroRd32.exe のオプションを見直すか、

動いていたAdobe Readerと同じバージョンものを入れるべきだと思います。

--------------

関係ないですが、

WScript.Sleep(10);

1000ぐらいにしたほうがよさそうな。

1000=1秒だと思うので。

--------------

id:ReoReo7

ありがとうございます。sleepは1000に変更しました。

コマンドラインで実行できなかったので、コメントのringtaleさんのアドバイスにあるように

/cjs を /sにしたところ、印刷できました。


これで大変苦労したエラーから開放されました。

ご協力下さったみなさん、ありがとうございました。

2007/10/25 03:51:27

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

a.js や Book1.xls と同じところに PDFファイルが おいてありますでしょうか?

または Cドライブ 直下に a.pdf b.pdf c.pdf を おいて エクセルには


c:\a.pdf

c:\b.pdf

c:\c.pdf

としたらいかがでしょうか?

id:ReoReo7

ありがとうございます。

Book1とpdfは同じフォルダです。

エクセルのセルの変更を試してみましたが、先ほどと同様のエラーが出ます。

Book1は開くようですが、Adobeがエラーを出します。

ちなみに、以前はうまく行っていたプログラムで、OSを入れ替えてから

もう一度実行したらうまくいかないようになったプログラムです。

2007/10/24 10:29:13
id:KUROX No.2

回答回数3542ベストアンサー獲得回数140ここでベストアンサー

ポイント50pt

コマンドライン等で、

AcroRd32.exe /cjs /t "ファイル名";

を実行してみて、これで動くかどうかを確認するのが原因の切り分けに

なると思われます。

Googleのキャッシュにしか残ってませんでしたが

>/cjsオプションが7.0で追加されたものの、8.1で廃止されたので、

>スクリプト。 Adobe Reader 6.0 ~ 8.1 用. PDF印刷. ....

>START ACRORD32.EXE /n /t "ファイル" "プリンタ名" 印刷設定画面非表示

>いずれの場合も印刷後、アプリが残るので、 ...

AcroRd32.exe のオプションを見直すか、

動いていたAdobe Readerと同じバージョンものを入れるべきだと思います。

--------------

関係ないですが、

WScript.Sleep(10);

1000ぐらいにしたほうがよさそうな。

1000=1秒だと思うので。

--------------

id:ReoReo7

ありがとうございます。sleepは1000に変更しました。

コマンドラインで実行できなかったので、コメントのringtaleさんのアドバイスにあるように

/cjs を /sにしたところ、印刷できました。


これで大変苦労したエラーから開放されました。

ご協力下さったみなさん、ありがとうございました。

2007/10/25 03:51:27
  • id:ReoReo7
    ・エラーの詳細
    以下のpdfファイルを印刷するプログラムを実行すると、Acrobatが
    "There was an error opening this document. The path does no exist."
    "There was an error opening this document. The file cannot be found."
    と2つのエラーを順に返し、印刷が実行されないので、そのバグを修正してください。

    ・コード

    a.bat:
    ---------------------------------------
    set PATH=%PATH%;C:\Program Files\Adobe\Reader 8.0\Reader
    cscript a.js Book1.xls
    pause
    ---------------------------------------

    a.js:
    ---------------------------------------
    var excelFile = WScript.Arguments.Item(0);
    var objExcel = WScript.GetObject(excelFile);

    var shell = WScript.CreateObject("WScript.Shell");
    var limit = 100;
    for(var i=1;i<=limit;i++){
    var filename = objExcel.Sheets("Sheet1").Cells(i, 1).value + "";
    if(filename == "undefined"){break;}

    WScript.echo(filename);
    var oExec = shell.Exec('AcroRd32.exe /cjs /t "' + filename + '"');
    while(oExec.Status == 0){WScript.Sleep(10);}
    }
    ---------------------------------------

    a.bat を実行。するとAcrobatが開いてエラーを返す。エラーメッセージで"OK"を押すとドキュメントは開くが、印刷されない。
  • id:F-15X
    パスが無く、ファイルが見つからない
    ということだと思うので、
    フルパスで指定してみたらいかがでしょう。
    cscript a.js d:\hoge\Book1.xls
  • id:ReoReo7
    試してみましたが、同様のエラーが出ます。
    Book1は開くようですが、Adobeがエラーを出します。

    ちなみに、以前はうまく行っていたプログラムで、OSを入れ替えてから
    もう一度実行したらうまくいかないようになったプログラムです。
  • id:ReoReo7
    参考となるサイトを見つけました。

    http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200709/07090007.txt

    これによれば、"MicrosoftとAdobeの仲が悪いから仕方ない"とありますが、解決法については分かりませんでした。
    何とかなりませんでしょうか?



    Adobe Reader8.1を使うものとAcrobat 6.0(English)を使うものと両方試してみましたがうまくいきません。
    ちなみに、

    "There was an error..."のメッセージはAcrobat6.0、

    Reader8.0の場合はエラーメッセージとして

    "この文書を開く時にエラーが発生しました。このファイルが見つかりません」と出ます。"

  • id:ReoReo7
    OSは、以前はWindows Vista Beta2(うまくいった)で、
    現在はWindows XP SP2
    にしたところうまくいかないようになりました。

    Adobeも入れなおしたので、OSが原因かは分かりません。
  • id:ReoReo7
    もうひとつ思い出しました。

    以前Vista Beta2でうまくいっていた時は、Adobe Readerを起動させた状態で実行するとうまく印刷が連続して始まり、起動していない状態で実行するとうまくいかなかった(確か同じエラーが出た)と思います。

    今回は、Adobe Readerを起動した状態で実行しても、起動していない状態で実行しても、両方ともエラーメッセージが出ます。
  • id:ringtale
    Execの代わりにRunを使ってはいかがでしょうか。
    あとは、/cjs → /s (検索しても /c と /j というオプションが見つからない?)
  • id:taknt
    しょうがなさそうなので、そのPDFを連結させて ひとつのPDFにしてから 印刷したらいかがでしょうか?

    連結するソフトなら いろいろありますよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません