Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- 匿 名 の投稿
返信数: 5

Windows 版の Adobe Acrobat Reader DC で
pdfdde, pdfopen, pdfclose を実行すると
Cannot contact a server. になります.

>echo open hoge.pdf | pdfdde
Cannot contact a server.

>pdfopen --file hoge.pdf
Cannot contact a server.

>pdfopen --file hoge.pdf && pdfclose --file hoge.pdf
Cannot contact a server.

バイナリエディタで pdfdde.exe を開いて
acroviewR11 を acroviewR15 に修正して保存すると
動作するようになりました.

匿 名 への返信

Re: Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- Akira Kakuto の投稿
Adobe の方針で,アプデートごとにサーバ名を変更
するので,困ったものです。

Reader の場合 "acroviewR15"
Acrobat の場合 "acroviewA15"

でよろしいでしょうか?
Akira Kakuto への返信

Re: Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- 匿 名 の投稿

Adobe Reader/Acrobat X 以降は
DDE のサーバー名は
Acrobat Reader の場合は

acroviewR + バージョン番号

Acrobat の場合は

acroviewA + バージョン番号

に仕様が変更されていると思います.
Adobe Acrobat DC でもこの仕様であると考えると
Adobe Acrobat Reader DC のバージョン番号は 15 になると思うので
acroviewR15 でいいと思います.
私の環境では acroviewR15 で動作しています.
Adobe Acrobat DC は持っていないので正確なサーバー名は分かりませんが
おそらく acroviewA15 でいいのではないかと思います.

Akira Kakuto への返信

Re: Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- 匿 名 の投稿

W32TeX [2015/04/09] と 祝鳥 0.89 で
Adobe Acrobat Reader DC を実行して
PDF ファイルが開けることを確認しました.
対応ありがとうございました.

pdfopen の実行時間を MSYS2 の bash の time コマンドで計測してみました.

$ time pdfopen --file hoge.pdf

real    0m1.851s
user    0m0.000s
sys     0m0.031s

$ time pdfopen --r15 --file hoge.pdf

real    0m0.733s
user    0m0.015s
sys     0m0.015s

コマンドラインオプションに --r15 を指定したほうが
指定しない場合よりも
2.5 倍早く実行できるようです.

匿 名 への返信

Re: Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- Akira Kakuto の投稿
オプション --r15 などを付けるのは,面倒でしょうから,新しいものでは
pdfdde.exe と同じディレクトリにある pdfddeservername.txt という名前の
ファイルで,DDE サーバ名を設定できるようにしました。このファイルの例
を以下にあげます。このファイルが無かったり,サーバ名が unknown の場合は
今までと同じ動作をします。
将来サーバ名が変わった場合も,これで何とかなると思います。
なお,ファイル名が最後の引数である場合には,オプション --file が要らない
ようになっていると思います。従って pdfopen file.pdf
も(多分)可能だと思います。

unknown
#acroviewR15
#acroviewA15
#acroviewR11
#acroviewA11
#acroviewR10
#acroviewA10
#acroview
#
# もし,お持ちの Adobe Reader あるいは Adobe Acrobat の DDE サーバの
# 名前がわからない場合には,このファイルを編集しないで下さい。
# このファイルで意味を持つのは,コメント文字 # を先頭に持たない 1 行
# だけです。その 1 行で DDE サーバの名前を設定します。ただしその名前が
# 初期状態のように,unknown である場合には,このファイルから DDE サーバ
# の名前を読みとることはありません。
# いくつかのサーバ名の例が上に書いてあります。この中に適当なものがあれば
# 先頭のコメント文字 # を取り除き,また unknown の先頭にコメント文字 # を
# 置いてこれを無効にすることによって,その適当なものを有効にすることが
# できます。
#
Akira Kakuto への返信

Re: Windows 版の Adobe Acrobat Reader DC で pdfdde, pdfopen, pdfclose を実行すると Cannot contact a server.

- 匿 名 の投稿

Kakuto さんありがとうございます.
これで Adobe Acrobat Reader の新バージョンがリリースされるたびに
バイナリファイルを修正する簡単なお仕事から開放されます.
W32TeX [2015/04/10] の pdfopen は
以下の様な結果になりました.

pdfddeservername.txt の値が unknown の場合

$ time pdfopen hoge.pdf

real    0m1.825s
user    0m0.000s
sys     0m0.031s

pdfddeservername.txt の値が acroviewR15 の場合

$ time pdfopen hoge.pdf

real    0m0.671s
user    0m0.015s
sys     0m0.000s

オプション --file を指定しないで
pdfopen file.pdf を実行すると
正常に処理出来ました.
W32TeX [2015/04/10] の pdfopen は
以下のようになるみたいです.

正常に処理できる場合

pdfopen hoge.pdf
pdfopen --page 3 hoge.pdf
pdfopen --page 3 --file hoge.pdf
pdfopen --file hoge.pdf --page 3

エラーになる場合

pdfopen hoge.pdf --page 3

ファイル名と開くページを指定して実行した場合に
最初にファイル名,次に開くページの順番で実行する場合は
ファイル名の前に --file オプションを指定しないと
エラーになるようです,
エディタの設定に pdfopen を使用する場合は
基本的に --file オプションは指定するようにしたほうが
トラブルが少なくていいかもしれません.
synctex コマンドを使用すれば
Adobe Acrobat Reader DC でも
現在行の対応する PDF ファイルの該当するページに
ジャンプすることができるので
Adobe Acrobat の機能に強く依存するような
PDF ファイルを LaTeX で作成する場合は
便利な場面が出てくると思います.