Как переполнить одно текстовое поле в другое, используя ABCPdf 10 в C#

В настоящее время у меня есть два текстовых поля в Adobe Acrobat. Я хочу, чтобы одно текстовое поле (AdditionalComments) переполнилось вторым (AdditionalComments2). Я написал собственный сценарий нажатия клавиш для поля AdditionalComments, который успешно позволил переполнение при вводе вручную в Adobe Reader. Вот этот скрипт:

var f2 = this.getField("AdditionalComments2");

if(event.fieldFull) // the event is on AdditionalComments
{
    // write to AdditionalComments2 what didn't fit in AdditionalComments
    f2.value = event.changeEx;

    // don't commit the text that didn't fit into AdditionalComments
    event.rc = false;

    // start writing exclusively to AdditionalComments2
    f2.setFocus();
}

Несмотря на то, что это работало при вводе вручную, цель состоит в том, чтобы использовать этот документ PDF с пользовательским сценарием в качестве шаблона, в который я напишу использование ABCPdf в C#. Однако, когда я программно пишу слишком много текста в AdditionalComments и генерирую pdf с текстом, текст не переполняется в AdditionalComments2.

Несколько заметок:

  • Doc.HtmlOptions.UseScript = true;
  • Шаблон PDF имеет фиксированную ширину и высоту текстового поля
  • У меня нет доступа к Adobe LiveCycle для динамической высоты поля
  • Я знаю, что сценарий нажатия клавиш не будет выполнен, по крайней мере, потому что это не нажатие клавиш. Значение записывается в поле в C# через field.Value = [text]
  • Даже если выполнялся сценарий нажатия клавиши, одновременное написание текста привело бы к значению event.changeEx весь текст, поэтому ничего не будет записано в AdditionalComments, а все будет написано в AdditionalComments2

Есть ли способ получить событие нажатия клавиши для запуска? Есть ли лучший способ получить переполнение от одного текстового поля к другому, используя ABCPdf10?

Другой подход, о котором я думал, так как шрифт фиксированный, состоит в том, чтобы получить количество строк и вручную переключиться на второе текстовое поле после этого количества строк. Однако я знаю, как измерить количество строк только в том случае, если нажата клавиша ввода и в строке находится символ новой строки. Я не знаю, что делать, когда новая строка из-за переноса.

0 ответов

Другие вопросы по тегам