我现在有一份PDF文件,通过PDFBox渲染成每页一张的图片
// load pdf and save image
try (PDDocument document = PDDocument.load("some file")) {
PDFRenderer render = new PDFRenderer(document);
BufferedImage scaledImage = render.renderImageWithDPI(pageIndex, 326);
// save image
}
这一步保存的图片将会在浏览器里面预览,用户可以拖放图片到这个预览图中,然后我映射这个坐标到真实的PDF中,但是总是有一定的误差,下面是我的映射方式:
取得预览图在浏览器的width,height,取得拖放图片的在预览图中左上角的x,y
后端取得PDF实际的width,height,然后计算与预览图的宽比例,高比例,最终得出拖放图片在PDF中的左上角的x,y
因PDF中的坐标原点是文档左下角,所以最终的x,y计算公式是:
x: float targetX = (previewX 1.0F / previewWidth) pdfPageWidth;
y: float targetY = pdfPageHeight - (previewY 1.0F / previewHeight) pdfPageHeight - dragImageHeight
根据上一步计算的x,y在这页PDF中画出了这个图,但是有误差,而且误差很明显,请问我该如何做呢?
参考文档
PDF坐标系统
PDF开发+电子签章
添加回答
举报
0/150
提交
取消