2016-08-02 13 views
0

Я работаю с PDFSharp для заполнения PDF-файлов полями AcroForm. Я могу установить значение поля формы, используя код, подобный этому:Невозможно изменить шрифт в поле AcroForm с помощью PDFSharp

PdfTextField txtField = (PdfTextField)oldPDF.AcroForm.Fields["fieldname"]; 
    txtField.Value = new PdfString("my form value"); 

У меня есть проблема, когда я пытаюсь изменить шрифт для текста, который будет идти в поле. Я могу получить доступ к шрифту свойства поля, и это позволяет мне установить его так:

txtField.Font = new XFont("Courier New", 16, XFontStyle.Bold); 

Однако, когда я открыть сохраненный PDF, он по умолчанию шрифта обратно на другой шрифт. Я также пробовал использовать другие шрифты, такие как «Arial», или «Helvetica», и разные размеры, но ничего не кажется.

Интересно также, когда я открываю PDF, прежде чем внести изменения в него с Foxit PhantomPDF я могу осмотреть поле формы и посмотреть, шрифт установлен Times New Roman

enter image description here

После того как я заполнить PDF и сохраните его, а затем посмотрите на поля, и он отобразит набор на Helvetica 10, независимо от того, какой шрифт я пытаюсь установить в своем коде.

enter image description here

Если я вручную редактировать поле формы с Foxit PhantomPDF и изменить шрифт, способ, это будет придерживаться, но я хочу сделать это в коде. Это возможно?

ответ

0

Не уверен, что это правильный способ, но я могу изменить шрифт, обратившись к элементу «/ DA» по умолчанию в полевом словаре AcroForm и изменив его.

if(txtField.Elements.ContainsKey("/DA") == false) 
     { 
     txtField.Elements.Add("/DA", new PdfString("/CoBo 12 Tf 0 g")); 
     } 
    else 
     { 
     txtField.Elements["/DA"] = new PdfString("/CoBo 12 Tf 0 g"); 
     } 

Я чувствую, как свойство «Шрифт» будет правильный способ сделать это, но я не могу получить, что метод работы.

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