Сохранить фотографии с камеры в PDF - PullRequest
1 голос
/ 13 марта 2020

Я хотел бы сохранить фотографии, снятые с камеры, в документе 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-документа, это также поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...