Comment créer un fichier PDF avec plusieurs pages à partir de fichier image dans Android? J'ai créé un fichier PDF à partir de l'image. Ce fichier PDF a une page. C'est la moitié de cette image. Dans la partie de recherche droite droite est coupée dans le fichier PDF. J'utilise iText-5.3.4.jar pour créer PDF.
wbviewnews.loadUrl("http://developer.android.com/about/index.html"); // button for create wbpage to image than image to PDF file Button btnclick =(Button)findViewById(R.id.btnclick); btnclick.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Picture p = wbviewnews.capturePicture(); bitmap=null; PictureDrawable pictureDrawable = new PictureDrawable(p); bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(),pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888); //Bitmap bitmap = Bitmap.createBitmap(200,200, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawPicture(pictureDrawable.getPicture()); ImageView imgdata=(ImageView)findViewById(R.id.imgdata); imgdata.setImageBitmap(bitmap); String filename = "pippo.png"; File sd = Environment.getExternalStorageDirectory(); File dest = new File(sd, filename); String pdffilename = "pippo.pdf"; File pdffilepath = new File(sd, pdffilename); try { FileOutputStream out = new FileOutputStream(dest); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); Log.e("Exception", e.toString()); } Document document=new Document(); try { Log.e("pdffilepath", pdffilepath.toString()); PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream(pdffilepath)); document.open(); // URL url = new URL (Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+filename); // Log.e("url", url.toString()); Image image = Image.getInstance(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+filename) ; document.add(image); document.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("FileNotFoundException", e.toString()); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("DocumentException", e.toString()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("MalformedURLException", e.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.e("IOException", e.toString()); } } });
4 Réponses :
Votre recherche via Stackoverflow est moins que je suppose que j'ai trouvé ces réponses déjà une solution, celle-ci contenue dans une réponse différente et en regardant les Q / II, ils peuvent résoudre votre problème, sinon continuent d'essayer :) p>
Comment générer un fichier PDF avec image dans Android? < / a> p>
Comment créer un PDF avec plusieurs pages d'un objet graphique avec Java et IText P>
J'ai utilisé iText.jar Fichier pour créer PDF. Mais un problème dans la création de plusieurs fichiers PDF PDF.
Vous pouvez définir l'image comme celle-ci ...
Bitmap bt=Bitmap.createScaledBitmap(btm, 200, 200, false); bt.compress(Bitmap.CompressFormat.PNG,100, bos);
Si votre hauteur de mise en page linéaire est très grande que celle de ce code fort> https://donemonuts.com/androïd-generate-pdf-view/ p> Suivez ce lien et modifier simplement les lignes P> PdfDocument document = new PdfDocument();
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, 10000, 1).create();
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLUE);
canvas.drawPaint(paint);
Bitmap bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth, 10000, true);
canvas.drawBitmap(bitmap, 0, 0 , null);
document.finishPage(page);`
Si vous souhaitez créer un fichier PDF avec plusieurs images, vous pouvez utiliser PDFDocument de Android. Voici une démo:
private void createPDFWithMultipleImage(){ File file = getOutputFile(); if (file != null){ try { FileOutputStream fileOutputStream = new FileOutputStream(file); PdfDocument pdfDocument = new PdfDocument(); for (int i = 0; i < images.size(); i++){ Bitmap bitmap = BitmapFactory.decodeFile(images.get(i).getPath()); PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(bitmap.getWidth(), bitmap.getHeight(), (i + 1)).create(); PdfDocument.Page page = pdfDocument.startPage(pageInfo); Canvas canvas = page.getCanvas(); Paint paint = new Paint(); paint.setColor(Color.BLUE); canvas.drawPaint(paint); canvas.drawBitmap(bitmap, 0f, 0f, null); pdfDocument.finishPage(page); bitmap.recycle(); } pdfDocument.writeTo(fileOutputStream); pdfDocument.close(); } catch (IOException e) { e.printStackTrace(); } } } private File getOutputFile(){ File root = new File(this.getExternalFilesDir(null),"My PDF Folder"); boolean isFolderCreated = true; if (!root.exists()){ isFolderCreated = root.mkdir(); } if (isFolderCreated) { String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); String imageFileName = "PDF_" + timeStamp; return new File(root, imageFileName + ".pdf"); } else { Toast.makeText(this, "Folder is not created", Toast.LENGTH_SHORT).show(); return null; } }