2017-09-08 53 views
1

如何在iText7上獲得PDF表單字段的字體大小?如何獲取iText7上表單字段的字體大小?

在iText5,我能做到這一點,因爲這:

PdfReader reader = new PdfReader(SRC); 
PdfStamper stamper = new PdfStamper(reader, outputStream); 
AcroFields fields = stamper.getAcroFields(); 

AcroFields.Item item = fields.getFieldItem(FIELDNAME); 
PdfDictionary merged = item.getMerged(0); 
TextField textField = new TextField(null, null, null); 
fields.decodeGenericDictionary(merged, textField); 
float fontSize = textField.getFontSize(); 

我找不到我怎麼能在iText7做到這一點。我怎樣才能做到這一點?

回答

0

我設法做到了。但我不確定這是否是一種直接的方式。

try (PdfDocument readDoc = new PdfDocument(new PdfReader(SRC))) { 
    PdfAcroForm pdfAcroForm = PdfAcroForm.getAcroForm(readDoc, false); 
    PdfFormField field = pdfAcroForm.getField(FIELDNAME); 
    PdfString defaultAppearance = field.getDefaultAppearance(); // like "/MSGothic 9 Tf 0 g" 
    float fontSize; 
    if (defaultAppearance != null) { 
    String[] array = defaultAppearance.toString().split(" "); 
    if (array.length > 2) { 
     fontSize = Float.parseFloat(array[1]); 
    } 
    } 
} 
+1

我也在努力解決這個問題。 iText 7缺乏適當的文檔簡直令人驚歎。 API與第5版完全不同,但iText站點上的示例僅涵蓋了非常有限的特殊情況。隨你。回到你的問題,我不認爲'field.getDefaultAppearance()'是你真正想要的。正如名稱所示,它應該是表單的* default *外觀,而不是字段實際呈現的那個。 – TXV