1

iTextを使用してPDFを読み取るJavaMEアプリケーションを作成しています。クラスパスにiTextライブラリを含む標準のJavaでコードを記述すると、アプリケーションが実行されます。ただし、クラスパスにiTextライブラリを含むJavaモバイルアプリケーションにコードを移動すると、コンパイル中に次のようなエラーが発生します。

error: cannot access URL
PdfReader reader = new PdfReader(pdfPath);                 
class file for java.net.URL not found

私の問題は、PDFファイルを読み取るための回避策が必要なことです。rt.jarを含むパッケージであるコードにライブラリとして追加しようとしましたが、java.io大きすぎてコンパイルできません。回避策を見つけるのを手伝ってください。私のコードはここにあります

package PDFreaderpackage;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.TextArea;
import javax.microedition.midlet.MIDlet;

public class Midlet extends MIDlet {

Form displayForm;
TextArea pdfText;
private String bookcontent;
public static String INPUTFILE = "c:/test.pdf";
public static int pageNumber = 1;

public void startApp() {
    Display.init(this);
    this.bookcontent = readPDF(INPUTFILE, pageNumber);
    pdfText = new TextArea(bookcontent);
    displayForm = new Form("Works");
    displayForm.addComponent(pdfText);
    displayForm.show();
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public String readPDF(String pdfPath, int pageNumber) {

    try {
        PdfReader reader = new PdfReader(pdfPath);
        this.bookcontent = PdfTextExtractor.getTextFromPage(reader, pageNumber);
    } catch (Exception e) {
        System.out.println(e);
    }
    return bookcontent;
}
}
4

2 に答える 2

3

これらのクラスはモバイル デバイスでは使用できず、JavaME は Java 5 機能をサポートしていません。あなたがやろうとしていることは、やや非現実的です。Codename Oneでは、バイトコード処理のおかげでさらにいくつかのクラスを使用できますが、それでも完全な rt.jar にはほど遠いものです。

于 2012-11-11T04:59:30.833 に答える
1

時間があれば、iText の Java ME 準拠バージョンを試して作成することもできますが、PDF を適切に開くにRandom Access Fileは、ファイルの末尾にある xref テーブルのためにライブラリが何らかの形式を使用する必要があります。この種のファイル接続は、Java MEでは使用できません。

ライブラリができることは、PDF をメモリに完全にロードすることです。これは、ファイル サイズと使用可能なハンドセット メモリに大きく依存します。

PDF を受信し、そこから PNG 画像などを返す Web サービスを作成することをお勧めします。

于 2012-11-11T11:02:48.153 に答える