Adobe Reader cParent parametr TypeError, „nieprawidłowy typ argumentu”, ale wyświetlane są elementy menu

0

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
Louis Maddox
źródło

Odpowiedzi:

0

Podany przez ciebie rodzic nie jest elementem menu w programie Acrobat / Reader. Musisz podać prawidłowy element menu.

Ponadto możesz sprawdzić w dokumentacji Acrobat JavaScript, czy setPageBoxes jest dostępny dla programu Reader (zakładając, że skrypt został uruchomiony w programie Reader).

Max Wyss
źródło
Rozumiem to, ale załączyłem skrypt, aby dodać wspomniany element cParent poniżej Filemenu app.addSubMenui 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 (?)
Louis Maddox
Właśnie zauważyłem, że system plików Linux wydaje się ignorować to miejsce, ale zmiana tego pliku na AAAddMenu.js, aby upewnić się, że działa jako pierwszy, nie zmienia rzeczy. Pozycja menu pokazuje się, ale nadal NotAllowedError: Security settings prevent access to this property or method. Doc.setPageBoxes:1:Menu Crop for BMC:Execpo kliknięciu przycisku dziennika.
Louis Maddox,