2013-06-20 38 views
0

創建動態PDF閱讀器我用動態下面的代碼也使用iText庫創建的PDF。 當我添加的代碼,用於將圖像以使用以下代碼此PDF文件:問題,而在Android的

try { 

       String str_path = Environment.getExternalStorageDirectory() 
         .toString(); 

       File file; 
       file = new File(str_path, getString(R.string.app_name) 
         + ".pdf"); 
       FileOutputStream fos = new FileOutputStream(file); 

       Document document = new Document(); 
       PdfWriter.getInstance(document, fos); 

       document.open(); 
       document.add(new Paragraph("Hello World, iText")); 
       document.add(new Paragraph(new Date().toString())); 


       Image image = Image.getInstance("ic_launcher.png"); 
       document.add(image); 

       document.close(); 
       fos.close(); 

      } catch (Exception e) { 

       e.printStackTrace(); 
      } 

比我檢索0字節的PDF文件。

我不知道什麼是問題,如果你有任何想法與它相關,請分享給我。謝謝。

回答

0

在這裏,您有一個例外,因此您檢索0字節的PDF文件

+0

如何解決這個問題? –

2

這將解決您的問題

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
     byte[] bitMapData = stream.toByteArray(); 
     Image image = Image.getInstance(bitMapData); 
+0

非常感謝您的回答。 –

2

最後我添加圖像到PDF使用下面的代碼:

嘗試{

   String str_path = Environment.getExternalStorageDirectory() 
         .toString(); 

       File file; 
       file = new File(str_path, getString(R.string.app_name) 
         + ".pdf"); 
       FileOutputStream fos = new FileOutputStream(file); 

       Document document = new Document(); 

       PdfWriter.getInstance(document, fos); 

       InputStream ims = getAssets().open("ic_launcher.png"); 
       Bitmap bmp = BitmapFactory.decodeStream(ims); 
       ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
       bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
       Image image = Image.getInstance(stream.toByteArray()); 

       document.open(); 
       document.add(new Paragraph("Hello World")); 
       document.add(new Paragraph(new Date().toString())); 
       document.add(image); 

       document.close(); 
       fos.close(); 

      } catch (Exception e) { 

       e.printStackTrace(); 
      } 

使用此代碼,希望這會幫助你。