Как переполнить одно текстовое поле в другое, используя 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?
Другой подход, о котором я думал, так как шрифт фиксированный, состоит в том, чтобы получить количество строк и вручную переключиться на второе текстовое поле после этого количества строк. Однако я знаю, как измерить количество строк только в том случае, если нажата клавиша ввода и в строке находится символ новой строки. Я не знаю, что делать, когда новая строка из-за переноса.