2014-06-26 3 views
0

Я добавляю контент в существующий PDF, используя pdfContentByte. Существующий документ PDF, который был первоначально создан словом, имеет несколько флажков. Если нужно, установите флажок «X» на флажке. Что я могу сделать, чтобы «X» накладывал флажок. С кодом ниже «X» помещается под флажок.PdfContentByte не заменит флажок

private static void AddField(float xpos, float ypos, string Text, PdfImportedPage page, PdfContentByte cb2, BaseFont f_cn2) 
{ 
    cb2.AddTemplate(page, 0, 0); 
    cb2.BeginText(); 
    cb2.SetFontAndSize(f_cn2, 10); 
    cb2.ShowTextAligned(Element.ALIGN_LEFT, Text, xpos, ypos, 0F); 
    //cb2.SetTextMatrix(xpos, ypos); //(xPos, yPos) 
    //cb2.ShowText(Text); 
    cb2.EndText(); 
} 
+0

в вашем названии, вы имеете в виду _Override_ или _Overwrite_? –

ответ

1

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

В вашем фрагменте кода я вижу метод с вводящим в заблуждение именем AddField(). Это имя вводит в заблуждение, потому что вы не добавляете поле. Кажется, вы добавляете контент в поток контента. Если этот поток контента является частью потока содержимого страницы, то можно ожидать, что это будет и нормальный, что это содержимое покрыто аннотациями виджета.

Мне кажется, что вы хотите «проверить» этот флажок. Почему бы вам не сделать это, заполнив форму? Предположим, что имя поля флажок «Си-Би» и на значение «Да», то вы бы использовать PdfStamper экземпляр, создал AcroFields объект (например, form), а затем сделать что-то вроде этого:

form.setField("cb", "Yes"); 

Это поле должно быть «проверено» интерактивным. См. Пример FillDataSheet для полного примера.

Важно: вы должны знать имя поля (это не всегда будет «куб»), и вы должны знать, внешний вид штатам флажка (это не всегда будет «Да»). Вы должны прочитать chapter 6 of my book для получения дополнительной информации.

Смежные вопросы