使用PDFBox 2.0.4将页面提取为图像,我的结果页面包含多个“黑洞”,如下图所示:
这种情况只发生在本PDF和其他PDF中:http://www.filedropper.com/selection_3
下面是一个简单的代码(使用JavaFX)来重现问题(下载PDF后更改文件路径):
public class PDFExtractionTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FileInputStream inputStream = new FileInputStream(new File("C:\\Users\\John\\Desktop\\selection.pdf"));
PDDocument document = PDDocument.load(inputStream);
PDFRenderer pdfRenderer = new PDFRenderer(document);
BufferedImage bufferedImage = pdfRenderer.renderImage(1);
Image fxImage = SwingFXUtils.toFXImage(bufferedImage, null);
BorderPane borderPane = new BorderPane();
ImageView imageView = new ImageView(fxImage);
borderPane.setCenter(imageView);
primaryStage.setScene(new Scene(borderPane, 1024, 768));
primaryStage.show();
}
public static void main(String[] args) throws FileNotFoundException {
launch(args);
}
}
以下是我的依赖项:
在日志中我有这个,但我不知道这是否是问题的原因。我该怎么修?
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode
AVERTISSEMENT: No Unicode mapping for .notdef (9) in font Times-Bold
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.rendering.Type1Glyph2D getPathForCharacterCode
AVERTISSEMENT: No glyph for 9 (.notdef) in font Times-Bold
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.pdmodel.font.PDSimpleFont toUnicode
AVERTISSEMENT: No Unicode mapping for .notdef (9) in font Helvetica
févr. 01, 2017 11:20:51 AM org.apache.pdfbox.rendering.Type1Glyph2D getPathForCharacterCode
AVERTISSEMENT: No glyph for 9 (.notdef) in font Helvetica
我是否遗漏了代码中的某些内容,还是应该报告错误?
经过13次提醒后,我终于让Stian发布了jai-Imageio-jpeg2000库的新版本1.4.0。
所以这个东西最终可以通过升级到最新的官方库来解决...
这是一个长期的问题(见PDFBOX-1752)。错误在JAI中,而不是在PDFBox中。“没有Unicode......”在这里无关紧要,这只与文本提取相关。
查看jai-Imageio-jpeg2000项目,然后将文件StdEntropyDecoder.java
更改为此提交(从此拉取请求扩展)。在maven中构建项目和参考版本1.3.1-SNAPSHOTpom.xml或将jar文件复制到类路径中。
如果jai-Imageio-jpeg2000项目团队发布了包含该拉取请求的新版本,那么您将不再需要构建自己。
附加关键词:黑色墨迹,黑色斑点
“黑白”调整可让您将彩色图像转换为灰度图像,同时保持对各颜色的转换方式的完全控制。也可以通过对图像应用色调来为灰度着色,例如创建棕褐色效果。 执行下列操作之一: 单击“调整”面板中的“黑白”图标 。 选取“图层”>“新建调整图层”>“黑白”。在“新建图层”对话框中,键入调整图层的名称,然后单击“确定”。 Photoshop 会应用默认的灰度转换。 注意:也可以选择“图像”>“调整”>“黑白”。但是
我是openCV的新手,我一直在学习为Android提供的示例。 我的目标是检测颜色斑点,所以我从颜色斑点检测样本开始。 我将彩色图像转换为灰度,然后使用二值阈值进行阈值化。 背景是白色的,斑点是黑色的。我想探测那些黑色斑点。此外,我想画他们的彩色轮廓,但我不能这样做,因为图像是黑白的。 我已经设法在灰度中完成了这一点,但我不喜欢轮廓的绘制方式,这就像颜色容差太高,轮廓比实际的斑点大(可能斑点太小
问题内容: 每当鼠标仅用CSS悬停在图像上时,我都试图在图像上添加透明的黑色覆盖层。这可能吗?我尝试了这个: 但是我无法让div出现。 问题答案: 我建议使用伪元素代替overlay元素。由于伪元素不能添加到封闭的元素上,因此您仍然需要包装该元素。 至于CSS,请在元素上设置 可选尺寸,并相对放置它。如果您希望获得自适应图像,则只需省略尺寸即可,但仍然可以使用(示例)。值得注意的是,尺寸必须位于父
我得到以下错误 服务器:版本:1.12.6 API版本:1.24 Go版本:Go1.6.4 Git提交:78D1802构建:1月10日星期二20:20:01 2017 OS/arch:Linux/AMD64
在OpenCV python中,假设我们用cv2.imread读取一个图像,并得到一个BGR numpy数组。接下来我们使用cv2.inrange命令生成一个掩码。掩模具有相同的宽度/高度,并且每个掩模像素要么是黑色的,要么是白色的。 我必须先将掩码转换成BGR图像吗?如果是,怎么做? 编辑:我不想像在将蒙版应用到彩色图像中那样将整个蒙版应用到图像上。另一种表达我所想要的方式:将面具视为一个黑白图
我尝试使用PDFBox将BuffereImage中的图像绘制到PDF中,但失败了,我得到了黑色图像,Acrobat Reader发出警告,其中有“内存不足”之类的错误(但PDF是显示的)。 我使用BuffereImage是因为我需要将JavaFX图像对象(来自对Functiones.crearImagenDesdeTexto()的调用,是一个将文本转换为图像的函数)绘制成PDF。其余图像在不使用B