当前位置: 首页 > 知识库问答 >
问题:

如何用iText提取PDF中矩形的颜色

龚征
2023-03-14

我正试图用iText提取PDF中矩形的颜色。以下是PDF页面的所有内容:

这是用iText提取的页面内容:

q
BT
36 806 Td
0 -18 Td
/F1 12 Tf
(Option 1:)Tj
0 0 Td
0 -94.31 Td
ET
Q
q
Q
q
2 J
0 G
0.5 w
88.3 693.69 139.47 94.31 re
S
0.5 w
227.77 693.69 139.47 94.31 re
S
0.5 w
367.23 693.69 139.47 94.31 re
S
Q
BT
1 0 0 1 90.3 774 Tm
/F1 12 Tf
(A rectangle:)Tj
ET
q 1.13 0 0 1.13 229.77 695.69 cm /Xf1 Do Q
BT
1 0 0 1 369.23 774 Tm
/F1 12 Tf
(The rectangle is scaled)Tj
1 0 0 1 369.23 762 Tm
(to fit inside the cell, you)Tj
1 0 0 1 369.23 750 Tm
(see a padding.)Tj
ET
228 810 m
338 810 l
S

但是,我不能从代码中提取一些东西,我说的是红色,如果我生成相同的PDF,但使用另一种颜色而不是红色,页面内容没有任何变化(代码显示在上面)。

我使用的是iText 5.5.9,下面是我用来生成PDF示例的代码示例:

感谢您提供的任何帮助!

这是我用来生成PDF的代码:

String dest = "C:\\TestCreation.pdf";
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();

document.add(new Paragraph("Option 1:"));
PdfPTable table = new PdfPTable(3);
table.addCell("A rectangle:");
PdfTemplate template = writer.getDirectContent().createTemplate(120, 80);
template.setColorFill(BaseColor.RED);
template.rectangle(0, 0, 120, 80);
template.fill();
writer.releaseTemplate(template);
table.addCell(Image.getInstance(template));
table.addCell("The rectangle is scaled to fit inside the cell, you see a padding.");
document.add(table);

PdfContentByte cb = writer.getDirectContent();
cb.moveTo(228, 810);
cb.lineTo(338, 810);
cb.stroke();
document.close();

我已经检查了所有的reader对象,我能够找到矩形,但没有找到它的颜色:

共有1个答案

壤驷睿
2023-03-14

要查找矩形的颜色,您可能需要浏览PDF流的/annots部分。这里,您只研究/contents,它不包括Rect实体的颜色等信息。

我希望它会有所帮助:)

 类似资料:
  • 问题内容: 我正在尝试使用iText提取PDF中矩形的颜色。在下面的是所有的PDF页面有什么: 这是使用iText提取的页面内容: 但是,有些东西我无法从该代码中提取,我说的 是红色,如果我生成相同的PDF,但是用另一种 颜色而不是红色,则页面内容没有任何变化(上面的代码显示了) )。 因此,我的问题是,如何使用 iText库Java的某些方法或属性来提取该颜色。 我正在使用iText 5.5.9

  • 问题内容: 我们使用iText从Java生成PDF(部分基于此站点的建议)。但是,将徽标的副本以GIF之类的图像格式嵌入会导致人们放大和缩小时看起来有些奇怪。 理想情况下,我们希望以矢量格式嵌入图像,例如EPS,SVG或只是PDF模板。该网站声称EPS支持已被删除,在PDF中嵌入PDF或PS可能会导致错误,甚至没有提到SVG。 我们的代码直接使用Graphics2D API而不是iText,但是我

  • 我试图通过翻译在http://viralpatel.net/blogs/itext-tutorial-merge-split-pdf-files-using-itext-jar/找到的splitPDF方法,用clojure从pdf中提取单个页面 IOException流关闭java.io.FileOutputStream.WriteBytes(:-2) 这将阻止我在repl仍然打开时打开文档。一旦

  • 有可能吗?如果是,那么它可以怎么做。

  • 问题内容: 我是库的新手。谁能指导我如何使用Java中的将背景色添加到整个页面(而不是块或段落)pdf。 问题答案: 此代码将完成此工作:

  • 我按照ItextSharp的示例获取图形结构,并使用以下代码获取矩形坐标: 我尝试了renderInfo.getfillColor();但是没有这样的方法。 我想获得额外的矩形属性: 像矩形填充颜色,(一些类似于html中的DIV style=“background:blue;border:black;”标签)我如何获得它?