저는 Adobe Acrobat Pro(과학 연구를 위해 많은 PDF로 작업함)용 사용자 정의 스크립트를 작성했는데 Mac과 Windows에서 잘 실행됩니다. Linux에는 Adobe Reader만 있지만 Readme 파일의 스크린샷에 표시된 것처럼 시작 시 파일 메뉴 내에 메뉴 항목이 표시되도록 관리할 수 있었습니다.https://github.com/lmmx/CropScience(윈도우즈에서).
Acrobat 문서에 Linux에 대한 언급이 없기 때문에(아마도 전체 Acrobat이 아닌 Reader만 사용할 수 있기 때문일 것임) (클릭 시) 적절한 실행 권한을 허용하기 위해 파일을 어디에 두어야 할지 조금 혼란스럽습니다.
학술 저널 Nature의 설정에 해당하는 샘플 스크립트 "CropPrintNature.js":
app.addMenuItem({cName:"Crop for Nature (articles and ed.)",cParent:"Crop and Print", cExec:"for(var p=0;p<n();p++){o=a().getPageBox('BBox',p);o[0]+=34;o[1]-=37;o[2]-=33;o[3]+=22;if(p==0){o[1]-=38}for(b=0;b<4;b++){a().setPageBoxes(d[b],p,p,o)}};this.print();"});
/opt/Adobe/Reader9/Reader/Javascripts에서 ~/.adobe/Acrobat/9.0/Javascripts로 옮겼는데 여전히 작동하지 않습니다(하지만 시스템 전체가 아닌 사용자별이므로 이것이 올바른 위치여야 한다고 생각합니다) .
후자 폴더 내에서 glob.js는 비어 있고 glob.settings.js에는 다음 내용만 포함되어 있습니다.��({})
TypeError가 없다고 추측하겠습니다. 버튼 중 하나를 클릭할 때 참조되는 cParent 요소에 해당하는 자르기 및 인쇄 버튼이 표시됩니다. 오히려 권한 수준을 벗어난 항목에 액세스하려는 시도가 있습니다. 마지막 메시지로(버튼을 클릭하면 콘솔에 기록됨)
이동해야 하나요, 아니면 구성 파일을 추가해야 하나요...? 콘솔 로그의 끝은 다음과 같습니다.
App.addMenuItem:1:Folder-Level:User:CropPrintAnnuRev.js
===> Parameter cParent.
TypeError: Invalid argument type.
App.addMenuItem:1:Folder-Level:User:CropPrintBriefBioinfo.js
===> Parameter cParent.
TypeError: Invalid argument type.
App.addMenuItem:1:Folder-Level:User:CropPrintJMolBioEarly.js
===> Parameter cParent.
TypeError: Invalid argument type.
App.addMenuItem:1:Folder-Level:User:CropPrintAAutoBoundaries.js
===> Parameter cParent.
NotAllowedError: Security settings prevent access to this property or method.
Doc.setPageBoxes:1:Menu Crop for Nature Rev. Mol. Cell. Bio.:Exec
답변1
지정한 cParent는 Acrobat/Reader의 메뉴 항목이 아닙니다. 유효한 메뉴 항목을 지정해야 합니다.
또한 Reader에서 setPageBoxes를 사용할 수 있는지 여부를 Acrobat JavaScript 설명서에서 확인할 수 있습니다(Reader에서 스크립트를 실행했다고 가정).