问题描述
我想将电子签名添加到pdf。我正在使用签名板库来捕获签名和标签视图,以移动,缩放和旋转图像StickerView。 我正在使用PDFView库在android中渲染PDF。
我正在使用tomroush的PDFbox在android中操作pdf。我想将签名图像添加到pdf中。但在将android视图坐标映射到pdf框坐标时存在问题。我正在附上我尝试过的代码
//loading pdf
pdfView.fromUri(pdf_location).enableSwipe(true).defaultPage(0).onPageError(new OnPageErrorListener() {
@Override
public void onPageError(int page,Throwable t) {
t.printStackTrace();
}
}).load();
以PDDOcumnet代码加载PDF
//loading document in PDF box PDDocument object
PDDocument document = PDDocument.load(getContentResolver().openInputStream(pdf_location));
PDPage currentPage = document.getPage(pdfView.getCurrentPage());
PDImageXObject image = PDImageXObject.createFromFile(fName,document);
PDPageContentStream contentStream = new PDPageContentStream(document,currentPage,true,false);
计算图像的宽度和高度(缩放图像)
float width = iv_sticker.getImageDrawable().getIntrinsicWidth() * (( 72.0f / getResources().getDisplayMetrics().densityDpi));
float height = iv_sticker.getImageDrawable().getIntrinsicHeight() * ((72.0f / getResources().getDisplayMetrics().densityDpi));
在pdf上绘制图像
contentStream.drawImage(image,iv_sticker.getX() * (currentPage.getMediaBox().getWidth() / pdfView.getOptimalPageWidth()),(currentPage.getMediaBox().getWidth() - (iv_sticker.getY() * (currentPage.getMediaBox().getHeight() / pdfView.getOptimalPageHeight()))) - (height),width,height);
在最后一个代码片段中,我正在找到pdf视图宽度和PDPage宽度的比率,然后将其乘以图像X坐标,以找到pdf上相应的X坐标。与y坐标相同。与Y坐标映射的唯一区别是,我从PDF页面高度减去y坐标,因为PDF坐标从左下角开始,然后减去图像高度,以使图像不会超出页面范围。但是输出不完美,我正在附加屏幕截图。
Image Of PDF after running the above code after adding signature
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)