- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个项目,需要从 PdfFile 创建 PDFImag,为此我正在使用 PDFRendere API。当 Pdf 文件大小很小(如 104 kb、180 kb、421 kb 等)时,我的程序成功运行,但我收到 “线程“Image Fetcher 0”中的异常”*java.lang.OutOfMemoryError:Java 堆空间“* 当 PdfFile 大小大约或大于 12 mb、13 mb、20 mb 时。我在 Windows XP、Windows2003 服务器和 Linux 操作系统上检查它,并且还增加了 Java 堆大小约 1024 mb,但我仍然收到 java.lang.OutOfMemoryError: Java 堆空间。我的代码是这样的
try {
pdfFileName = pdfFileName.trim();
if (pdfFileName != null || !(pdfFileName.equals(""))) {
lastIndexx = pdfFileName.lastIndexOf('.');
if (lastIndexx < 0) // if extension not present, concatenate the extension
{
filePath = pdfPath+ pdfFileName + ".pdf";
} else {
filePath = pdfPath+ pdfFileName;
pdfFileName = pdfFileName.substring(0, lastIndexx);
}
System.out.println("Pdf system's redefine physical path, where pdfFile are stored, from PdfController.java : " +filePath);
file = new File(filePath);
raf = new RandomAccessFile(file, "r");
channel = raf.getChannel();
byteBuf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
System.out.println("PdfFile Name before Trim() :" + pdfFileName + ":");
// get a pdf file when pdf is password protected.
byte[] bytePassword = pdfFileName.trim()).getBytes();
pdfPassword = new PDFPassword(bytePassword);
pdffile = new PDFFile(byteBuf, pdfPassword);
// draw the image of particular page
dpage = pdffile.getPage(pageNo);
//get the width and height for the doc at the default zoom
rect = new Rectangle(0, 0, (int) dpage.getBBox().getWidth(), (int) dpage.getBBox().getHeight());
//Rectangle rect = new Rectangle(0,0, 200, 300);
//BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//generate the image
img = dpage.getImage(
//rect.width, rect.height, //width & height
width, height, // hardcoded in jsp
rect, // clip rect
null, // null for the ImageObserver
true, // fill background with white
true // block until drawing is done
);
bufImageGraphics = bufferedImage.createGraphics();
bufImageGraphics.drawImage(img, 0, 0, null);
ImageIO.write(bufferedImage, "jpg", new File(directoryName + "//" + pdfFileName + "_" + pageNo + ".jpg"));
succ = true;
} /*catch (OutOfMemoryError ex) {
System.out.println("From showPdfMetaData.jsp, OutOfMemoryError, Message : " + ex.getMessage());
System.out.println("From showPdfMetaData.jsp, OutOfMemoryError, Message : " + ex.getCause());
//errorType = "Jvm throw OutOfMemoryError";
}*/catch (MethodNotFoundException ex) {
System.out.println("From pdfToImage(), MethodNotFoundException, Message : " + ex.getMessage());
System.out.println("From pdfToImage(), MethodNotFoundException, Message : " + ex.getCause());
System.out.println("pdfFileName, from pdfToImage(), MethodNotFoundException: " + pdfFileName);
succ = false;
} catch (StringIndexOutOfBoundsException e) {
System.out.println("from pdfToImage(), StringIndexOutOfBoundsException !!!");
System.out.println("pdfFileName, from pdfToImage(), StringIndexOutOfBoundsException: " + pdfFileName);
e.printStackTrace();
succ = false;
} catch (FileNotFoundException e) {
System.out.println("from pdfToImage(), FileNotFoundException !!!");
System.out.println("pdfFileName, from pdfToImage(), FileNotFoundException: " + pdfFileName);
e.printStackTrace();
succ = false;
} catch (IOException e) {
System.out.println("from pdfToImage(), IOException !!!");
System.out.println("pdfFileName, from pdfToImage(), IOException: " + pdfFileName);
e.printStackTrace();
succ = false;
} catch (NullPointerException e) {
System.out.println("from pdfToImage(), NullPointerException !!!");
System.out.println("pdfFileName, from pdfToImage(), NullPointerException: " + pdfFileName);
e.printStackTrace();
succ = false;
} catch (Exception e) {
System.out.println("from pdfToImage(), General Exception !!!");
System.out.println("pdfFileName, from pdfToImage(), Exception: " + pdfFileName);
e.printStackTrace();
succ = false;
} finally {
if (raf != null) {
byteBuf.clear();
channel.close();
raf.close();
}
if(bufferedImage !=null){
bufferedImage.flush();
//bufImageGraphics.finalize();
}
if(bufImageGraphics !=null){
bufImageGraphics.dispose();
}
if(pdfPassword !=null){
pdfPassword = null;
}
if(dpage !=null){
dpage = null;
}
if(rect !=null){
rect = null;
}if(img !=null){
img.flush();
img = null;
}if(dmsMgmt !=null){
dmsMgmt = null;
}
}
return succ;
}
当我调试程序时,它抛出内存不足错误
img = dpage.getImage(
//rect.width, rect.height, //width & height
width, height,
rect, // clip rect
null, // null for the ImageObserver
true, // fill background with white
true // block until drawing is done
);
我从jsp调用这个方法。所以请指导我任何可能的建议。提前致谢,对于任何错误的原因,我深表歉意,因为这是我的第一个问题...如果我问问题的方式错误,我会尝试不重复
最佳答案
java.lang.OutOfMemoryError: Java heap space 至少有 2 个可能的原因。
关于java - 获取 java.lang.OutOfMemoryError : Java heap space when creating images(thumbnails/images) from pdfFile using PDFRender API ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415791/
我正在开发一个使用两个单独的模块化 Django 应用程序的项目。但是,一个应用程序需要简单的缩略图,而另一个需要 sorl-thumbnails。不幸的是,这两个缩略图库使用了模板标签语法 {%
我需要在页面上列出缩略图,所有缩略图都具有固定的高度和宽度。一旦我悬停其中任何一个,我希望较大的图像显示在固定位置,即 top:50px 和 left:50px 在其包装内。大图的尺寸也是固定的,即宽
我目前正在使用 blobstore 为图像生成缩略图,但是,我喜欢将缩略图的尺寸存储在 img 标签中,因为这是一种很好的做法,有助于加快渲染和使部分加载的页面看起来更漂亮。 如果只知道原始图像的尺寸
我正在使用 Dmcloud java Api 将视频上传到 dmcloud.but theres api 没有提供有关如何获取特定视频缩略图的太多信息。 我可以获得流 url 下载 url 和 evr
我在 Elastic Beanstalk 上使用 Django 和 easy_thumbnails 时遇到一些问题,我不太确定出了什么问题...问题如下: 我正在使用 easy_thumbnails
我确实有一个来自 wikimedia commons 的文件名,我想直接访问缩略图。 示例: Tour_Eiffel_Wikimedia_Commons.jpg 我找到了一种方法来获取包含我想要的缩略
使用响应式文件管理器 9.11.3缩略图在对话框窗口 (GUI) 中不显示/空白。在 ftp 缩略图中可以创建成功。文件夹“thumbs”权限 755 文件权限 644。我更改为 755 仍然没有出现
如何在 fotorama 中始终显示缩略图?有一个只有一张图片的画廊,我也想显示缩略图,只有在有两张或更多图片时才会显示。 最佳答案 使用enableifsingleframe标志: 关于
我尝试过 django-filer 在单个文件字段中选择多个文件,只是我尝试了我的简单模型,但我面临着这个模板错误。我刚刚在 django admin 中使用了一个简单的模型。请你帮助我好吗? cla
我正在尝试开发一些“特色帖子”。当您 mouseover() 它们时,我希望它们发生变化。我想这将通过 jQuery 完成,我试着开始,但我对它很烂所以我想我会在这里问。 我想出了这个 jQuery
在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输
我们有一个网站,允许用户上传文档(word、pdf、PPT等)。我们正在将文件上传到 Amazon S3。因此,所有文件都将拥有自己的网址。 对于这些上传的文档,我们希望生成缩略图。此缩略图需要根据其
我的 django 网站中有很多大图像,我使用 sorl-thumbnail 来压缩页面加载。因为有很多大图像,有时我的页面第一次加载需要很长时间——甚至有时会导致 nginx 超时。我能做些什么来防
我记得有一个关于 sorl-thumbnail future 的讨论大变化即将来临;现在那个页面不见了......我很高兴该项目仍在积极维护中,但我在文档中找不到任何提及向后兼容性问题的内容。 那么,
伙计们,我想知道 sorl-thumbnail 是否有任何选项可以从底部到顶部裁剪...我有一个垃圾问题,在某些图片中 sorl-thumbnail 正在裁剪图片中人的头部。 谢谢 最佳答案 我刚刚发
我首先尝试存储和使用 API 返回的链接,但它会在很短的时间内过期。然后我尝试将图像下载并存储在本地(并从我的服务器提供);但是当我没有使用我的帐户登录时,缩略图链接会引发 404 错误(尽管文档是完
SORL 缩略图出现问题并在文件被覆盖时删除缩略图文件或刷新缩略图。场景是我有一个文件,每个条目总是相同但可以被覆盖。需要在上传新文件并覆盖旧文件时重新创建缩略图。 这是在模型 + 表单级别,所以我使
在我的模型上使用 sorl-thumbnail v11.01 和 ImageField 是否有一种简单的方法可以在保存之前调整上传文件的大小(以避免保存大量图像,以防已上传)?提前致谢。 最佳答案 结
我对thumbor 很陌生,但我想知道是否可以使用我还不知道的特定选项来“放大”图像。 下面的简单示例: 到目前为止,我所理解的可能是,这可能意味着调整到特定区域的大小。但是我缺乏找到正确选项的经验(
HTC incredible,没有 SD 卡只有内存。我的应用程序使用 MediaStore.Images.Thumbnails.getThumbail() 来检索图像缩略图。查看代码,Thumbna
我是一名优秀的程序员,十分优秀!