gpt4 book ai didi

java - 如何在 iText 中从 pdf 的第一页创建图像

转载 作者:太空狗 更新时间:2023-10-29 15:47:27 27 4
gpt4 key购买 nike

我想从 PDF 的第一页创建图像。我在 java 中使用 iText。你能建议我如何将 pdf 的第一页提取为图像吗?

Document document = new Document();               
PdfWriter writer = PdfWriter.getInstance(
document, new FileOutputStream(RESULT));
document.open();

File extStore = Environment.getExternalStorageDirectory();
String path=extStore.getPath()+"/FirstPdf.pdf";

PdfReader reader = new PdfReader(path);
int n = reader.getNumberOfPages();
PdfImportedPage page;
for (int i = 1; i <= n; i++) {
page = writer.getImportedPage(reader, i);
// Image.getInstance(page) ;
}

document.close();

上面的代码是我写的。如何将 pdf 的第一页提取为图像并将其保存在 SDCARD 中?

最佳答案

iText 不适用于该目的。

http://www.java2s.com/Open-Source/Android_Free_Code/Pdf/Download_Free_code_Android_Pdf_Viewer_Library.htm

jar 文件在 zip 中。

下载该库 PdfViewer.jar 并尝试此代码:

 byte[] bytes;
try {

File file = new File("/storage/extSdCard/Test.pdf");
FileInputStream is = new FileInputStream(file);

// Get the size of the file
long length = file.length();
bytes = new byte[(int) length];
int offset = 0;
int numRead = 0;
while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
ByteBuffer buffer = ByteBuffer.NEW(bytes);
String data = Base64.encodeToString(bytes, Base64.DEFAULT);
PDFFile pdf_file = new PDFFile(buffer);
PDFPage page = pdf_file.getPage(2, true);

RectF rect = new RectF(0, 0, (int) page.getBBox().width(),
(int) page.getBBox().height());

Bitmap image = page.getImage((int)rect.width(), (int)rect.height(), rect);
FileOutputStream os = new FileOutputStream("/storage/extSdCard/pdf.jpg");
image.compress(Bitmap.CompressFormat.JPEG, 80, os);
//((ImageView) findViewById(R.id.testView)).setImageBitmap(image);

} catch (Exception e) {
e.printStackTrace();
}

您也可以更改矩形以使其提取您想要的 pdf 的任何部分等,非常好。在找到解决方案之前,我花了大约 16 个小时用头撞墙。不确定如果没有 swing awt 库是否可行。抱歉,存储是硬编码的,但这是我当时最不关心的问题。

关于java - 如何在 iText 中从 pdf 的第一页创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com