2017-09-08 12 views
1

iText7でPDFフォームフィールドのフォントサイズを取得するにはどうすればよいですか? iText5でiText7でフォームフィールドのフォントサイズを取得する方法は?

、私はこのようにそれを行うことができます:私はiText7でこれを行うことができますどのように見つけることができませんでした

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(); 

。これどうやってするの?

答えて

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()'が本当に望んでいるとは思わない。名前が言うように、フィールドが実際にレンダリングされるものではなく、フォームの*デフォルトの外観でなければなりません。 – TXV

関連する問題