Ich habe einige benutzerdefinierte Skripte für Adobe Acrobat Pro geschrieben (ich arbeite mit vielen PDFs für wissenschaftliche Recherchen) und sie laufen auf Mac und Windows einwandfrei. Linux hat nur Adobe Reader, aber ich habe es trotzdem geschafft, die Menüelemente beim Start im Dateimenü anzuzeigen, wie im Screenshot der Readme-Datei unter zu sehen ist.https://github.com/lmmx/CropScience(unter Windows).
Da Linux in den Acrobat-Dokumenten nicht erwähnt wird (vermutlich, weil nur Reader und nicht die Vollversion von Acrobat verfügbar ist), weiß ich nicht so recht, wo ich meine Dateien ablegen soll, um ihnen die erforderlichen Berechtigungen zum Ausführen (beim Anklicken) zu erteilen.
Ein Beispielskript, „CropPrintNature.js“, entsprechend den Einstellungen für die wissenschaftliche Zeitschrift 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();"});
Ich habe sie von /opt/Adobe/Reader9/Reader/Javascripts nach ~/.adobe/Acrobat/9.0/Javascripts verschoben und es funktioniert immer noch nicht (aber ich denke, das sollte der richtige Speicherort sein, da es benutzerspezifisch und nicht systemweit ist).
In diesem Ordner ist glob.js leer und glob.settings.js enthält nur��({})
Ich würde vermuten, dass kein TypeError vorliegt. Ich sehe die Schaltflächen „Zuschneiden und Drucken“, die einem cParent-Element entsprechen sollten, auf das beim Klicken auf eine der Schaltflächen verwiesen wird. Vielmehr liegt als letzte Meldung (die in der Konsole protokolliert wird, wenn auf eine Schaltfläche geklickt wird) ein Versuch vor, auf etwas außerhalb seiner Berechtigungsebene zuzugreifen.
Muss ich sie verschieben oder eine Konfigurationsdatei hinzufügen...? Das Ende des Konsolenprotokolls lautet wie folgt:
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
Antwort1
Das von Ihnen angegebene cParent ist kein Menüelement in Acrobat/Reader. Sie müssen ein gültiges Menüelement angeben.
Sie können außerdem in der Acrobat-JavaScript-Dokumentation nachsehen, ob setPageBoxes für Reader verfügbar ist (vorausgesetzt, Sie haben das Skript in Reader ausgeführt).