Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从本地计算机移动文件时,使用PDFBox生成的PDF格式的图像将消失_Java_Image_Pdf_Pdf Generation_Pdfbox - Fatal编程技术网

Java 从本地计算机移动文件时,使用PDFBox生成的PDF格式的图像将消失

Java 从本地计算机移动文件时,使用PDFBox生成的PDF格式的图像将消失,java,image,pdf,pdf-generation,pdfbox,Java,Image,Pdf,Pdf Generation,Pdfbox,我一直在生成PDF并使用JPEG文件在顶部添加徽标。PDF中的图像在我的本地计算机(OSX)上显示得很好。但是,只要我将文件发送到其他地方,图像就不会再出现。我正在使用java和PDFBox生成PDF PDPageContentStream contentStream = ...; PDDocument document = ...; PDImageXObject image = PDImageXObject.createFromFile("image.jpg", document); cont

我一直在生成PDF并使用JPEG文件在顶部添加徽标。PDF中的图像在我的本地计算机(OSX)上显示得很好。但是,只要我将文件发送到其他地方,图像就不会再出现。我正在使用java和PDFBox生成PDF

PDPageContentStream contentStream = ...;
PDDocument document = ...;
PDImageXObject image = PDImageXObject.createFromFile("image.jpg", document);
contentStream.drawImage(image, 50, 700, 250, 67);

从1.8.11升级到2.0.0后,我通过更改图像添加到PDF的方式,成功地解决了这个问题

PDPageContentStream contentStream = ...;
PDDocument document = ...;
InputStream imageStream = this.getClass().getClassLoader().getResourceAsStream("image.jpg");
PDImageXObject image = JPEGFactory.createFromStream(document,imageStream);
contentStream.drawImage(image, 50, 700, 250, 67);
关键似乎在于使用:

JPEGFactory.createFromStream()
而不是:

PDImageXObject.createFromFile()

从1.8.11升级到2.0.0后,我通过更改图像添加到PDF的方式,成功地解决了这个问题

PDPageContentStream contentStream = ...;
PDDocument document = ...;
InputStream imageStream = this.getClass().getClassLoader().getResourceAsStream("image.jpg");
PDImageXObject image = JPEGFactory.createFromStream(document,imageStream);
contentStream.drawImage(image, 50, 700, 250, 67);
关键似乎在于使用:

JPEGFactory.createFromStream()
而不是:

PDImageXObject.createFromFile()

PDImageXObject.createFromFile()应该可以工作。。。如果没有,请尝试创建一个测试用例,然后在JIRA中创建一个问题。顺便说一句,一个常见错误是没有关闭内容流。
PDImageXObject.createFromFile()
基本上执行一个
FileInputStream fis=newfileinputstream(文件);PDImageXObject imageXObject=JPEGFactory.createFromStream(doc,fis)
,因此使用
JPEGFactory.createFromStream()
而不是
PDImageXObject.createFromFile()
不是一种通用的治疗方法。不过,有一件事引人注目,那就是在您的回答中,您从参考资料中检索图像,而
PDImageXObject.createFromFile(“image.jpg”,document)
显然试图从当前工作目录中检索图像。您可能在当前工作目录中有损坏的图像副本吗?@mkl-图像文件位置损坏似乎不是问题,因为图像确实显示在pdf中。当我将pdf移动到本地机器以外的其他位置时,问题就出现了,例如AWS S3。移动PDF时,所有文本和其他格式仍然可见,但图像不再可见。AWS S3。。。你是说通过URL访问图像吗?@mkl。我不明白。以下是我最初遇到的情况:
1。在本地创建PDF 2。PDF(带有嵌入在PDF中的图像)看起来不错!3.将PDF(图像看起来不错)上传到AWS S3 4。在AWS S3中查看PDF或下载PDF 5。PDF中不再有可见图像
PDImageXObject.createFromFile()应该可以工作。。。如果没有,请尝试创建一个测试用例,然后在JIRA中创建一个问题。顺便说一句,一个常见错误是没有关闭内容流。
PDImageXObject.createFromFile()
基本上执行一个
FileInputStream fis=newfileinputstream(文件);PDImageXObject imageXObject=JPEGFactory.createFromStream(doc,fis)
,因此使用
JPEGFactory.createFromStream()
而不是
PDImageXObject.createFromFile()
不是一种通用的治疗方法。不过,有一件事引人注目,那就是在您的回答中,您从参考资料中检索图像,而
PDImageXObject.createFromFile(“image.jpg”,document)
显然试图从当前工作目录中检索图像。您可能在当前工作目录中有损坏的图像副本吗?@mkl-图像文件位置损坏似乎不是问题,因为图像确实显示在pdf中。当我将pdf移动到本地机器以外的其他位置时,问题就出现了,例如AWS S3。移动PDF时,所有文本和其他格式仍然可见,但图像不再可见。AWS S3。。。你是说通过URL访问图像吗?@mkl。我不明白。以下是我最初遇到的情况:
1。在本地创建PDF 2。PDF(带有嵌入在PDF中的图像)看起来不错!3.将PDF(图像看起来不错)上传到AWS S3 4。在AWS S3中查看PDF或下载PDF 5。PDF中不再有可见图像