Я написал несколько пользовательских сценариев для Adobe Acrobat Pro (я работаю со многими PDF-файлами для научных исследований), и они отлично работают на Mac и Windows. В Linux есть только Adobe Reader, но мне все же удалось получить элементы меню, отображаемые в меню файлов при запуске, как показано на скриншоте файла Readme по адресу https://github.com/lmmx/CropScience (в Windows).

Поскольку в документах Acrobat нет упоминания о Linux (предположительно, поскольку доступен только Reader, а не полный Acrobat), я немного растерялся, когда помещал свои файлы, чтобы позволить им запускаться с соответствующими правами (при нажатии).

Пример сценария "CropPrintNature.js", соответствующий настройкам академического журнала 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();"});

Я переместил их из /opt /Adobe /Reader9 /Reader /Javascripts в ~ /.adobe /Acrobat /9.0 /Javascripts и по-прежнему не работает (но я думаю, что это должно быть правильное расположение, поскольку оно зависит от пользователя, а не от всей системы ,

В этой последней папке glob.js пуст, а glob.settings.js содержит только ��({})

Я бы предположил, что здесь нет TypeError - я вижу кнопку Crop and Print, которая должна соответствовать элементу 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 ответ1

0

Указанный вами cParent не является пунктом меню в Acrobat/Reader. Вы должны указать правильный пункт меню.

Кроме того, вы можете проверить в документации по Acrobat JavaScript, доступен ли setPageBoxes для Reader (при условии, что вы запустили скрипт в Reader).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .