1

itext ライブラリを使用して PDF ファイルから画像を抽出し、PDF ファイルを Android アプリケーションのアセット フォルダーに配置し、itext ライブラリを使用してこれらの画像を A​​ndroid に表示したいと考えています。

4

1 に答える 1

3

iTextはJavaライブラリであるため、Androidで使用できます。

アセットフォルダに保存できますか?いいえ。その読み取り専用

代わりにSDカードに保存してみてください。

https://github.com/itext/i7js-samples/tree/develop/publications/book/src/test/java/com/itextpdf/samples/book/part4/chapter15espをご覧ください 。ファイル:Listing_15_30 / 31*.java彼らはiTextで画像を抽出する方法を教えてくれるはずです

Android用にカスタマイズするには

import com.itextpdf.text.pdf.parser.ImageRenderInfo;
import com.itextpdf.text.pdf.parser.PdfImageObject;
import com.itextpdf.text.pdf.parser.RenderListener;
import com.itextpdf.text.pdf.parser.TextRenderInfo;

public class MyImageRenderListener implements RenderListener {

/** The new document to which we've added a border rectangle. */
protected String path = "";

/**
 * Creates a RenderListener that will look for images.
 */
public MyImageRenderListener(String path) {
    this.path = path;
}

/**
 * @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock()
 */
public void beginTextBlock() {
}

/**
 * @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock()
 */
public void endTextBlock() {
}

/**
 * @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(
 *     com.itextpdf.text.pdf.parser.ImageRenderInfo)
 */
public void renderImage(ImageRenderInfo renderInfo) {
    try {
        String filename;
        FileOutputStream os;
        PdfImageObject image = renderInfo.getImage();
        if (image == null) return;
        filename = String.format(path, renderInfo.getRef().getNumber(), image.getFileType());
        os = new FileOutputStream(filename);
        os.write(image.getImageAsBytes());
        os.flush();
        os.close();
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}


   public void renderText(TextRenderInfo renderInfo) {
   }
}
于 2013-01-02T11:35:08.870 に答える