Вопросы по заполнению формы 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 для меня, но я столкнулся с тремя проблемами:

  1. Если в Acrobat Pro DC установить поле формы для Rich Text, то независимо от того, какой шрифт я выберу, я получу Courier. Чтобы получить нужный шрифт, я должен отключить Rich Text.

  2. Я хотел бы изменить межстрочный интервал или ведущий в многострочных полях, но я не вижу способа сделать это (ни в Acrobat, ни в ColdFusion).

  3. Я хотел бы иметь возможность выделять жирным шрифтом, курсивом и изменять цвет определенных слов (а не всего поля), и мне интересно, есть ли коды, которые я могу передать из ColdFusion, чтобы сделать это.

Спасибо!

1 ответ

Имейте в виду, что если вы установите richText флаг текстового поля, вам придется использовать richValue для значения и richValue это массив span объекты, где каждый объект представляет собой фрагмент текста с определенными свойствами. Документация по Acrobat JavaScript - ваш друг...

Поскольку на самом деле невозможно напрямую вставить массивы в PDF-форму, вы можете рассмотреть представление массивов richValue в виде строк и заполнить их скрытыми "теневыми полями". Когда документ открывается, некоторая логика интерпретирует эти строки и заполняет richText включенные поля с правильными richValue массивы.

Также может быть полезно знать, что нет richDefaultValue свойство, что означает, что вам придется воссоздать richValue когда вы сбросите форму.

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