私の質問は、 「ある時点でプログラムでPDFを開くにはどうすればよいですか?」に似ています。、ただし、PDFはローカルであり、Webサーバー上ではありません。
ユーザーのコンピューター上にあるPDFの特定のページにジャンプする方法が必要です。これは、Acrobatのバージョン間で機能します(またはFoxit Readerなどの代替PDFビューアーを使用します)。PDFはJavaアプリから呼び出され(Windowsでのみ使用されるため、クロスプラットフォームは必須ではありません)、現在は次の機能で動作します。
int pageNum = 24;
String manualPath = "C:\\Program Files\\Foo\\Bar\\Docs\\RefMan.pdf";
String acrordPath = "C:\\Program Files\\Adobe\\Reader 8.0\\Reader\\AcroRd32.exe";
String cmdString = "\"" + acrordPath + \" /A \"page=" + pageNum +
"=OpenActions\" \"" + manualPath + \"";
Process p = Runtime.getRuntime().exec(cmdString);
明らかに、これはエンドユーザーが32ビット用のAcrobat 8を使用していて、デフォルトの場所にインストールされている場合にのみ機能します。次に使用してみました:
rundll32 url.dll,FileProtocolHandler file:///C:/Program%20Files/Foo/Bar/Docs/RefMan.pdf#page=24
これでユーザーのブラウザが開き、そのページにジャンプすると思いましたが、1ページでAcrobatを開いただけです。
だから私は困惑し、助けを求めています。