화면을 pdf로 저장하는 코드입니다.. 이전에는 잘 돌아갔는데
안드로이드 11은 저장이 안되네요ㅠ
찾아보니까 api 30부터는 권한이 강화되어서 바꼈다고 해서 이리저리 찾아보면서 바꿔봤는데도
동작이 안되네요ㅠㅠ
어느 부분이 잘못된걸까요?
Bitmap bm = Bitmap.createBitmap(relativeLayout.getWidth(), relativeLayout.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
relativeLayout.draw(canvas);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File f2 = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)+ File.separator +".jpg");
try {
f2.createNewFile();
FileOutputStream fo = new FileOutputStream(f2);
fo.write(bytes.toByteArray());
Document document = new Document();
String dirpath = pdfsave.this.getExternalFilesDir(null).getPath()+"/AudioData";
File dir = new File(dirpath);
if(!dir.exists()){
dir.mkdir();
}
PdfWriter.getInstance(document, new FileOutputStream(dirpath + "/" + 저장 할 파일 이름 + ".pdf"));
document.open();
Image image = Image.getInstance(f2.toString());
float scaler = ((document.getPageSize().getWidth() - document.leftMargin()
- document.rightMargin() - 0) / image.getWidth()) * 100;
image.scalePercent(scaler);
image.setAlignment(Image.ALIGN_CENTER | Image.ALIGN_TOP);
document.add(image);
document.close();
f2.delete();
} catch (Exception e) {
e.printStackTrace();
}