Мой вопрос похож на «Как программно открыть PDF-файл в определенный момент?» , но PDF-файл локальный, а не на веб-сервере.
Мне нужен способ перехода на заданную страницу в PDF-файле на компьютере пользователя, который работает в разных версиях Acrobat (или с использованием альтернативного средства просмотра PDF, например Foxit Reader). Файл 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);
Очевидно, это будет работать только в том случае, если конечный пользователь использует Acrobat 8 для 32-разрядной версии и установит его в папку по умолчанию. Затем я попытался использовать:
rundll32 url.dll,FileProtocolHandler file:///C:/Program%20Files/Foo/Bar/Docs/RefMan.pdf#page=24
думал, что это откроет браузер пользователей и перейдет на эту страницу, но он просто открыл Acrobat на странице 1.
Так что я ошарашен и прошу помощи.