1
您好,我使用此代碼獲取PDF中組件的位置。但是,如果字段的類型是單選框,然後fieldAreaArray = NULL如何使用PDFbox獲取Radiobutton的位置
COSDictionary fieldDict = field.getCOSObject();
COSArray fieldAreaArray = (COSArray) fieldDict.getDictionaryObject(COSName.RECT);
float left = (float) ((COSFloat) fieldAreaArray.get(0)).doubleValue();
float bottom = (float) ((COSFloat) fieldAreaArray.get(1)).doubleValue();
float right = (float) ((COSFloat) fieldAreaArray.get(2)).doubleValue();
float top = (float) ((COSFloat) fieldAreaArray.get(3)).doubleValue();
您必須意識到表單字段和其可視化小工具之間的pdf有所不同。如果一個表單域只有一個可視化對象,那麼建模表單域的pdf對象和對可視化對象建模的pdf對象可以合併爲一個對象。只有在這種合併的情況下,你的代碼才能工作。另一方面,單選按鈕表單字段很少只有一個小部件,因爲表單字段表示整個連接的單選按鈕組的狀態。 – mkl
@ Tomm23最好的方法是使用PDFDebugger查看文件。更改爲「顯示內部結構」,然後查看Root/AcroForm/Fields。重新構建小部件,獲取您的字段,然後調用getWidgets(),然後從每個小部件獲取矩形(有一個直接的方法)。例如,https://issues.apache.org/jira/browse/PDFBOX-142中的文件中的單選按鈕(看起來像複選標記,但它們實際上是單選按鈕)有9個小部件,請參閱'Root/AcroForm /場/ [9]/Kids'。 –
@ Tomm23有Tilman的和我的評論幫助你?如果是的話,如果您爲描述解決方案的問題創建了實際的答案,那將會很好。如果不是,你有什麼具體的不明白? – mkl