문제

내 질문은 비슷합니다 "특정 시점에서 PDF를 프로그래밍 방식으로 어떻게 열 수 있습니까?", 그러나 PDF는 웹 서버가 아닌 로컬입니다.

사용자 컴퓨터에있는 PDF의 주어진 페이지로 이동하는 방법이 필요합니다. 이는 Acrobat 버전 (또는 Foxit Reader와 같은 대체 PDF 뷰어를 사용하여)에서 작동하는 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을 열었습니다.

그래서 나는 혼란스러워서 도움을 요청합니다.

도움이 되었습니까?

해결책

나는 사용하여 이것을 구현하게되었습니다 이 코드 reg.exe를 호출하고 hklm software classes.pdf에서 출력을 구문 분석하려면 Acroexch 클래스인지 확인한 다음 hklm software classs acroexch.document shell open 명령에서 명령 줄을 얻습니다.

해킹하지만 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top