使用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");
}
}
如果有人有指示如何实现它,请告诉我。如果您需要任何进一步的信息,请告诉我。感谢您的帮助。