He escrito algunos scripts personalizados para Adobe Acrobat Pro (trabajo con muchos archivos PDF para investigaciones científicas) y funcionan bien en Mac y Windows. Linux solo tiene Adobe Reader, pero aún así logré que los elementos del menú se mostraran dentro del menú de archivos al inicio, como se muestra en la captura de pantalla del archivo Léame enhttps://github.com/lmmx/CropScience(en Windows).
Dado que no se menciona Linux en los documentos de Acrobat (presumiblemente porque solo está disponible Reader en lugar de Acrobat completo), no sé dónde colocar mis archivos para permitirles ejecutar los permisos adecuados (al hacer clic en ellos).
Un script de muestra, "CropPrintNature.js", correspondiente a la configuración de la revista académica 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();"});
Los moví de /opt/Adobe/Reader9/Reader/Javascripts a ~/.adobe/Acrobat/9.0/Javascripts y todavía no funciona (pero creo que esta debería ser la ubicación correcta ya que es específica del usuario, no de todo el sistema). .
Dentro de esta última carpeta, glob.js está vacío y glob.settings.js solo contiene��({})
Supongo que no hay ningún TypeError: puedo ver el botón Recortar e Imprimir que debería corresponder a un elemento cParent al que se hace referencia al hacer clic en uno de los botones; más bien, hay un intento de acceder a algo fuera de su nivel de privilegio. como último mensaje (que se registra en la consola cuando se hace clic en un botón).
¿Necesito moverlos o agregar algún archivo de configuración...? El final del registro de la consola es el siguiente:
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
Respuesta1
El cParent que ha especificado no es un elemento de menú en Acrobat/Reader. Debe especificar un elemento de menú válido.
Además, puede consultar en la documentación de JavaScript de Acrobat si setPageBoxes está disponible para Reader (suponiendo que haya ejecutado el script en Reader).