我正在尝试获取PDF字段的绝对位置,我的代码如下。
float[] _advisor = reader.getAcroFields().getFieldPositions("_advisor");
float[] _test = reader.getAcroFields().getFieldPositions("_test");
float[] _owner = reader.getAcroFields().getFieldPositions("_owner");
所有字段都垂直对齐相同的左侧位置。
问题是前两个字段在PDF的同一页面上,xLeft的值是相同的,但是Last字段_owner在第二页上,xLeft的值大量关闭。我是否需要为不同页面中的页面减去偏移量或其他内容?
答案 0 :(得分:0)
需要考虑的一些事项:
如果您仍然认为iText给您错误的价值,请向我们提供您的pdf访问权限,并向我们提供您希望收到的价值(及其原因)。
答案 1 :(得分:0)
一个可能的问题可能是您的媒体框具有与0,0不同的定位。我需要一次,所以我"标准化"像这样的值:
PdfDictionary pageDict = reader.getPageN(pageNumber);
PdfArray mediaBox = (PdfArray)PdfReader.getPdfObject(pageDict.get(PdfName.MEDIABOX));
//check whether the mediabox has a different positioning than 0,0
if(((PdfNumber)mediaBox.getPdfObject(0)).floatValue()!=0){
//normalize X coordinates
lowerLeftX = lowerLeftX-(PdfNumber)mediaBox.getPdfObject(0)).floatValue();
upperRightX = upperRightX-((PdfNumber)mediaBox.getPdfObject(0)).floatValue();
}
if(((PdfNumber)mediaBox.getPdfObject(1)).floatValue()!=0){
//normalize Y coordinates
lowerLeftY = lowerLeftY-((PdfNumber)mediaBox.getPdfObject(1)).floatValue();
upperRightY = upperRightY-((PdfNumber)mediaBox.getPdfObject(1)).floatValue();
}