2016-11-23 5 views
1

Попытка найти документацию о действиях, но есть очень мало.iText7 Поле Событие Действие не работает

Просматривая их api, я мало рассказываю о любом из полей класса PdfName.

Я нашел фрагмент кода, который кратко here идет над полем PdfName значения V, Е, X, D, и U.

Однако эти значения полей не настроить события правильно.

Когда я создаю поле подписи, а затем добавляю действия в следующий код, запускается только событие V, ни одно из других событий.

PdfSignatureFormField sigField = PdfFormField.createSignature(pdf);    
sigField.setFieldName("signature"); 

sigField.setAdditionalAction(PdfName.V, PdfAction.createJavaScript(
    "app.alert(\"Validation\")")); 

sigField.setAdditionalAction(PdfName.E, PdfAction.createJavaScript(
    "app.alert(\"Mouse Enter\")")); 

sigField.setAdditionalAction(PdfName.X, PdfAction.createJavaScript(
    "app.alert(\"Mouse Exit\")")); 

sigField.setAdditionalAction(PdfName.D, PdfAction.createJavaScript(
    "app.alert(\"Mouse Down\")")); 

sigField.setAdditionalAction(PdfName.U, PdfAction.createJavaScript(
    "app.alert(\"Mouse Up\")")); 

Кто-нибудь знает, почему события не срабатывают должным образом?

+0

Что касается PdfName, см http://stackoverflow.com/q/17645840/766786 –

+0

1) Какой зритель вы используете, чтобы открыть PDF? iText не проверяет и не выполняет js, это средство просмотра, которое должно реализовать JS-парсер. 2) Поля PdfName в основном представляют собой прямую реализацию из pdf-имен для словарных статей, и они находятся в Pdf-spec (ISO-32000) –

ответ

1

Непонятно из вашего кода, как вы относитесь к виджетам с полем формы.

Вы можете использовать метод createSignature(PdfDocument, Rectangle), чтобы сразу указать прямоугольник аннотации виджета. Есть и другие способы добавления виджетов в поле формы позже, но опять же, из вашего кода не ясно, выполняете ли вы это или нет.

В любом случае, это полностью работающий фрагмент кода, создающий файл, для которого события корректно запускаются в Adobe Reader (и даже в стандартном Windows Pdf Reader).

PdfFormField sigField = PdfFormField.createSignature(doc, new Rectangle(72, 632, 200, 100)); 
sigField.setFieldName("signature"); 
sigField.setAdditionalAction(PdfName.V, PdfAction.createJavaScript(
     "app.alert(\"Validation\")")); 

sigField.setAdditionalAction(PdfName.E, PdfAction.createJavaScript(
     "app.alert(\"Mouse Enter\")")); 

sigField.setAdditionalAction(PdfName.X, PdfAction.createJavaScript(
     "app.alert(\"Mouse Exit\")")); 

sigField.setAdditionalAction(PdfName.D, PdfAction.createJavaScript(
     "app.alert(\"Mouse Down\")")); 

sigField.setAdditionalAction(PdfName.U, PdfAction.createJavaScript(
     "app.alert(\"Mouse Up\")")); 
form.addField(sigField); 

 Смежные вопросы

  • Нет связанных вопросов^_^