Как переполнить одно текстовое поле в другое, используя ABCPdf 10 в C # - PullRequest
0 голосов
/ 14 февраля 2019

У меня в настоящее время есть два текстовых поля в 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 с текстом, текст не переполняется дополнительными комментариями 2.

Несколько примечаний:

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

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

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

...