Napisałem kilka niestandardowych skryptów dla Adobe Acrobat Pro (pracuję z wieloma plikami PDF do badań naukowych) i działają one dobrze na komputerach Mac i Windows. Linux ma tylko Adobe Reader, ale nadal udało mi się uzyskać elementy menu wyświetlane w menu pliku podczas uruchamiania, jak pokazano na zrzucie ekranu pliku Readme na https://github.com/lmmx/CropScience (w systemie Windows).
Ponieważ w dokumentach Acrobat nie ma wzmianki o Linuksie (przypuszczalnie ponieważ dostępny jest tylko Reader, a nie pełny Acrobat), trochę nie wiem, gdzie umieścić moje pliki, aby umożliwić im odpowiednie uprawnienia do uruchomienia (po kliknięciu).
Przykładowy skrypt „CropPrintNature.js” odpowiadający ustawieniom czasopisma akademickiego Nature:
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();"});
Przeniosłem je z / opt / Adobe / Reader9 / Reader / Javascripts do ~ / .adobe / Acrobat / 9.0 / JavaScripts i nadal nie działa (ale myślę, że powinna to być właściwa lokalizacja, ponieważ jest specyficzna dla użytkownika, a nie dla całego systemu .
W tym ostatnim folderze plik glob.js jest pusty, a plik glob.settings.js zawiera tylko ��({})
Domyślam się, że nie ma żadnego błędu typu - widzisz przycisk Kadruj i drukuj, który powinien odpowiadać elementowi cParent, do którego odwołuje się kliknięcie jednego z przycisków - raczej próba uzyskania dostępu do czegoś poza poziomem uprawnień jako ostatni komunikat (który loguje się do konsoli po kliknięciu przycisku).
Czy muszę je przenieść, czy dodać plik konfiguracyjny ...? Koniec dziennika konsoli wygląda następująco:
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
File
menuapp.addSubMenu
i działa on zgodnie z oczekiwaniami w systemie Windows / Mac. Dlatego wskazałem ostatni komunikat o błędzie, myślę, że to właściwie problem z ustawieniami bezpieczeństwa (?)