Обходной путь может заключаться в проверке переменной в событии prePrint
, которую вы заполняете только при нажатии кнопки. Поэтому, если пользователь нажимает на меню, переменная не будет заполнена, и вы можете отменить процесс печати и показать сообщение об ошибке.
Например, в событии prePrint
:
//Set a variable (buttonClicked) to true prior in the `click` event of your print button
if(!buttonClicked) {//if the menu print was used cancel and show error
xfa.event.cancelAction = 1; //Prevent printing
xfa.host.messageBox("This is a message", "This is a title", 3, 1);
}
Обычно я вызываю любую функцию, которая мне нужна, в событии prePrint, поэтому не имеет значения, нажимает ли пользователь на печать меню Adobe или нет. И в случае, если я хочу печатать определенным способом, я сначала отменяю действие печати, а затем печатаю программно с нужными мне параметрами.