如何使用PDFBox API确定PDTextbox值的数据类型

时间:2014-08-22 21:16:15

标签: pdf pdfbox

使用PDFBox API,我想在PDTextbox字段上添加限制,如果生成的PDF文本框需要String值,则不应允许Number值。同样,如果文本框期望Float值,则不应允许String值。

我尝试通过从PDField获取COSBase对象并分析COSBase对象来确定数据类型,但似乎接受String的PDTextbox对象既不是COSString类型,也不是COSFloat或COSInteger。

以下代码片段始终打印“#########实例既不是COSInteger类型也不是COSFloat,也不是COSString”,无论它是什么PDField。

if(field instanceof PDTextbox) {
PDTextbox textBox = (PDTextbox) field;
COSBase cosBaseObject = textBox.getCOSObject();

if(cosBaseObject instanceof COSInteger) {
    System.out.println("######### PDField instanceof COSInteger");
} else if(cosBaseObject instanceof COSFloat) {
    System.out.println("######### PDField instanceof COSFloat");
} else if(cosBaseObject instanceof COSString) {
    System.out.println("######### PDField instanceof COSString");
} else if(cosBaseObject instanceof COSNumber) {
    System.out.println("######### PDField instanceof COSNumber");
} else {
    System.out.println("######### Instance neither of COSInteger type, nor COSFloat, nor COSString");
}
}

如果有人有指示如何实现它,请告诉我。如果您需要任何进一步的信息,请告诉我。感谢您的帮助。

0 个答案:

没有答案