Я хотел бы сохранить фотографии, снятые с камеры, в документе PDF, поэтому теперь я могу восстановить последнюю сделанную фотографию и go с помощью растрового изображения, но когда я делаю другую фотографию, все они заменяются, вот мой code:
public void tirarFoto() {
//ACESSAR CAMERA PERMISSÕES
Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
if (intent.resolveActivity( getPackageManager() ) != null) {
startActivityForResult( intent, PERMISSAO_REQUEST );
}
}
Мое намерение вызвать камеру и сразу после возврата в OnAcitivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
try {
createImageFile();
Intent refresh = new Intent( this, Main2Activity.class );
startActivity( refresh );
} catch (IOException ex) {
// Error occurred while creating the File
}
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText( this, "CAPTURA CANCELADA", Toast.LENGTH_LONG ).show();
return;
}
Bitmap bitmap = (Bitmap) data.getExtras().get( "data" );
// Chame este método pra obter a URI da imagem
Uri uri = getImageUri( getApplicationContext(), bitmap );
// Em seguida chame este método para obter o caminho do arquivo
new File( getRealPathFromURI( uri ) );
if(bitmap != null){
Bitmap bitmap1 = (Bitmap) data.getExtras().get( "data" );
//Cria um documento para gerar o PDF
PdfDocument documentoPDF = new PdfDocument();
//Especifica detalhes da página
PdfDocument.PageInfo detalhesDaPagina = new PdfDocument.PageInfo.Builder( 500, 600, 1 ).create();
//Cria primeira Pagina
PdfDocument.Page novaPagina = documentoPDF.startPage( detalhesDaPagina );
Canvas canvas = novaPagina.getCanvas();
Paint corDoTexto = new Paint();
corDoTexto.setColor( Color.BLACK );
Paint foto = new Paint();
canvas.drawText( textView6.getText().toString(), 50, 100, corDoTexto );
canvas.drawText( textView.getText().toString(), 50, 130, corDoTexto );
canvas.drawBitmap( bitmap, 50, 200, null );
canvas.drawBitmap( bitmap1, 250, 200, null );
documentoPDF.finishPage( novaPagina );
//SALVA RELATORIO EM PDF NO SDCARD
SimpleDateFormat sdf = new SimpleDateFormat( "ddMMyyyyhhmmss" );
String pdfName = nomeArquivo.getText().toString() + "_"
+ sdf.format( Calendar.getInstance().getTime() ) + "relatorio.pdf";
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/VIEW REPORT/Pdf";
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File( root + "/saved_images" );
File dir = new File( path );
if (!dir.exists())
dir.mkdirs();
File pdffile = new File( dir, pdfName );
if (documentoPDF != null) {
// write the document content
try {
OutputStream out = new FileOutputStream( pdffile );
if (out != null) {
documentoPDF.writeTo( out );
// close the document
documentoPDF.close();
out.close();
Toast.makeText( this, "PDF GERADO COM SUCESSO", Toast.LENGTH_LONG ).show();
}
} catch (IOException e) {
e.printStackTrace();
Toast.makeText( this, "FALHA AO GERAR PDF: ", Toast.LENGTH_LONG ).show();
}
}
} else {
Toast.makeText( getApplicationContext(),
"CAMPO OBRIGATÓRIO",
Toast.LENGTH_LONG ).show();
}
}
super.onActivityResult( requestCode, resultCode, data );
}
, если кто-то использует какую-либо библиотеку, кроме PDF-документа, это также поможет.