2013-03-15 96 views
0

我搜索到PDF文件轉換爲圖像在Android中,itry與itextpdf-5.3.1.jarPDF格式轉換爲與iText的圖像中的Android

,但我有例外,在我機應用。我把這個庫放在libs文件夾中。

療法是我的代碼

package com.example.zakiexemple; 


import java.io.File; 

import java.io.FileOutputStream; 


import android.app.Activity; 
import android.os.Bundle; 

import android.view.View; 
import android.view.View.OnClickListener; 

import android.widget.Button; 

import android.widget.Toast; 


import com.itextpdf.text.pdf.PRStream; 
import com.itextpdf.text.pdf.PdfName; 

import com.itextpdf.text.pdf.PdfObject; 

import com.itextpdf.text.pdf.PdfReader; 

import com.itextpdf.text.pdf.PdfStream; 

public class MainActivity extends Activity { 

    PdfReader reader; 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     Button bt = (Button) findViewById(R.id.Button); 

     //final WebView wb = (WebView) findViewById(R.id.webView1); 



     bt.setOnClickListener(new OnClickListener() { 



@Override 

     public void onClick(View arg0) { 


      File file = new File("/sdcard/003_overview.pdf"); 
      try{ 
       reader = new PdfReader(file.getAbsolutePath()); 

       for (int i = 0; i < reader.getXrefSize(); i++) { 
        PdfObject pdfobj= reader.getPdfObject(i); 
        if (pdfobj == null || !pdfobj.isStream()) { 
         continue; 
        } 

        PdfStream stream = (PdfStream) pdfobj; 
        PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE); 

        if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) { 
         byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream); 
         FileOutputStream out = new FileOutputStream(new 
         File(file.getParentFile(),String.format("%1$05d", i) + ".jpg")); 
         out.write(img); out.flush(); out.close(); 
         Toast.makeText(getBaseContext(), "howa hadak", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 
      catch (Exception e) { } 


     } 
    }) ; 
    } 

    } 

和日誌錯誤

03-15 08:12:35.835: E/dalvikvm(937): Could not find class 'org.bouncycastle.cert.X509CertificateHolder', referenced from method com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj 03-15 08:12:35.835: W/dalvikvm(937): VFY: unable to resolve new-instance 1533 (Lorg/bouncycastle/cert/X509CertificateHolder;) in Lcom/itextpdf/text/pdf/PdfReader; 03-15 08:12:35.835: D/dalvikvm(937): VFY: replacing opcode 0x22 at 0x030e 03-15 08:12:35.946: D/dalvikvm(937): DexOpt: unable to opt direct call 0x318a at 0x318 in Lcom/itextpdf/text/pdf/PdfReader;.readDecryptedDocObj 03-15 08:12:35.946: D/dalvikvm(937): DexOpt: unable to opt direct call 0x31a5 at 0x33d in Lcom/itextpdf/text/pdf/PdfReader;.readDecryptedDocObj 03-15 08:12:36.505: D/dalvikvm(937): GC_CONCURRENT freed 743K, 14% free 5345K/6212K, paused 71ms+85ms, total 216ms

我想我還沒有爲Android好iText庫。

你能給出好的鏈接嗎?

回答

2

在大多數情況下iText無法在Android上直接使用。我們已經通過Android和App Engine進行了特定更改。其中一個變化是使用SpongyCastle而不是BouncyCastle。

您可以在這裏下載試用版:http://demo.itextsupport.com/newslicense/

+0

hy michel謝謝。我在哪裏可以在我的progect中添加密鑰文件 – 2013-03-15 09:04:27

+0

我有另一個日誌異常: 找不到應用程序。 我的問題是在我的程序中,我不使用任何電子郵件應用程序。 爲何出現此錯誤 – 2013-03-15 09:26:29

+0

可以使用LicenseFile的LoadLicenseFile方法添加密鑰文件。可能是一個類似的名字,從我的頭頂開始。至於你的「amil」日誌,你可以發佈更多的信息嗎? – 2013-03-15 09:29:46