Я пытаюсь создать программу, которая читает форму PDF (вопросы и ответы) и на данный момент просто выводит все обратно на экран. Моя проблема в том, что когда я использую getValue для переключателей или флажков, он всегда возвращает пустую строку, независимо от того, отмечена она или нет. Есть ли другой метод, который я должен использовать? Вот мой код:
public static void listFields(PDDocument doc) throws Exception
{
PDDocumentCatalog catalog = doc.getDocumentCatalog();
PDAcroForm form = catalog.getAcroForm();
List<PDField> fields = form.getFields();
for(PDField field: fields)
{
String name = field.getFullyQualifiedName();
if (field instanceof PDTextField || field instanceof PDComboBox)
{
Object value = field.getValueAsString();
System.out.print(name);
System.out.print(" = ");
System.out.print(value);
System.out.println();
}
else if (field instanceof PDPushButton)
;
else
{
if (field instanceof PDRadioButton)
{
PDRadioButton radioButton = (PDRadioButton)form.getField(name);
String value=radioButton.getValue();
System.out.print(name);
System.out.print(" = ");
System.out.print(value);
System.out.println();
/*List<String> exportValues = ((PDRadioButton) field).getSelectedExportValues();
for (String string : exportValues)
{
name = field.getFullyQualifiedName();
System.out.print(name);
System.out.print(" = ");
System.out.print(string);
System.out.println();
} */
}
else if (field instanceof PDCheckBox)
{
PDButton box = (PDButton)field;
String value = box.getValue();
System.out.print(name);
System.out.print(" = ");
System.out.print(value);
System.out.println();
}
}
}
}
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\bobdu\\Documents\\SHIP_CCF_LastName_FirstName_YYYYMMDD_v1_Sample.pdf");
PDDocument doc = PDDocument.load(file);
listFields(doc);
}
Закомментированный раздел для радиокнопок - это что-то другое, я пытался увидеть, изменит ли это что-нибудь. Комментируемая версия и версия, которая выполняется, выдают один и тот же результат. Заранее спасибо за помощь.