Вопросы по заполнению формы PDF с помощью cfpdfform и форматированного текста
Поэтому я использую следующий код для создания PDF из данных из запроса.
<cfpdfform action="populate" source="test.pdf" destination="GeneratedPDFs/test.pdf" overwrite="yes">
<cfpdfformparam name="FirstLine1" value="#Variables.FirstLine#">
<cfpdfformparam name="SecondLine1" value="#Variables.SecondLine#">
<cfpdfformparam name="AddressBox1" value="#Variables.AddressBox#">
<cfpdfformparam name="Body1" value="#Variables.Body1#">
<cfpdfformparam name="FirstLine2" value="#Variables.FirstLine#">
<cfpdfformparam name="SecondLine2" value="#Variables.SecondLine#">
<cfpdfformparam name="AddressBox2" value="#Variables.AddressBox#">
<cfpdfformparam name="Body2" value="#Variables.Body2#">
</cfpdfform>
<cfpdf action="write" source="GeneratedPostCards/!PostCard2013-Vipre.pdf" destination="GeneratedPostCards/!PostCard2013-Vipre-flat.pdf" flatten="yes" overwrite="true">
</cfpdf>
Это прекрасно работает и генерирует PDF для меня, но я столкнулся с тремя проблемами:
Если в Acrobat Pro DC установить поле формы для Rich Text, то независимо от того, какой шрифт я выберу, я получу Courier. Чтобы получить нужный шрифт, я должен отключить Rich Text.
Я хотел бы изменить межстрочный интервал или ведущий в многострочных полях, но я не вижу способа сделать это (ни в Acrobat, ни в ColdFusion).
Я хотел бы иметь возможность выделять жирным шрифтом, курсивом и изменять цвет определенных слов (а не всего поля), и мне интересно, есть ли коды, которые я могу передать из ColdFusion, чтобы сделать это.
Спасибо!
1 ответ
Имейте в виду, что если вы установите richText
флаг текстового поля, вам придется использовать richValue
для значения и richValue
это массив span
объекты, где каждый объект представляет собой фрагмент текста с определенными свойствами. Документация по Acrobat JavaScript - ваш друг...
Поскольку на самом деле невозможно напрямую вставить массивы в PDF-форму, вы можете рассмотреть представление массивов richValue в виде строк и заполнить их скрытыми "теневыми полями". Когда документ открывается, некоторая логика интерпретирует эти строки и заполняет richText
включенные поля с правильными richValue
массивы.
Также может быть полезно знать, что нет richDefaultValue
свойство, что означает, что вам придется воссоздать richValue
когда вы сбросите форму.