我找不到任何问题。
我的问题是这个。我必须创建一个带签名的pdf。我没有创建pdf或创建签名的问题,但是当我将它们放在一起时,我将签名的大小调整为更小但签名的质量已经降低。
在这里,我向您展示签名和缩放签名。
这就是我如何创建签名的位图。
mSignaturePad = (SignaturePad) dialog.findViewById(R.id.signature_pad);
Bitmap signaturePad = mSignaturePad.getSignatureBitmap();
createPDF(signaturePad);
这就是我如何创建pdf页面的画布。
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
最后我在获得缩放位图后绘制位图。
int width = source.getWidth();
int height = source.getHeight();
float scaleWidth = ((float) 100) / width;
float scaleHeight = ((float) 140) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
matrix.postRotate(-90);
Bitmap scaledBitmap = Bitmap.createBitmap(source, 0, 0, width, height, matrix, true);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
canvas.drawBitmap(scaledBitmap, 387, 717, paint3);
这不是我测试缩放位图的唯一方法。我测试了许多方法但没有任何效果。我该如何缩放这个位图?
我希望你能帮助我。谢谢。
psd:抱歉我的英文。
答案 0 :(得分:0)
下面介绍如何从资源文件夹添加图像。如果你已经有了位图,那么从位图进程开始就没有问题。您也可以关注Example。
File myFile1 = new File("/sdcard/ourdata/" + pdfname + ".pdf");
myFile1.createNewFile();
Document pdfDoc = new Document();
PdfWriter docWriter = PdfWriter.getInstance(document,
new FileOutputStream(myFile1));
document.open();
PdfContentByte cb = docWriter.getDirectContent();
InputStream inputStream = getAssets().open("signature.png");
Bitmap bmp = BitmapFactory.decodeStream(inputStream);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
Image signature = Image.getInstance(stream.toByteArray());
signature.setAbsolutePosition(400f, 150f);
signature.scalePercent(25f);
document.add(signature);