【发布时间】:2015-11-30 09:38:01
【问题描述】:
我正在为 pdf 设置边距并检查页面内容是否超出边距。
如果页面的内容只是文本,我很容易做到这一点。
这是我正在做的事情:
我正在使用TextMarginFinder。我将根据书籍大小设置 pdf 的left margin 值。并检查finder.getLlx();,因为finder.getLlx(); 会让我获得该页面中文本的最左侧位置。
TextMarginFinder finder;
if(leftmar>=finder.getLlx())
{
errormargin=1; //left margin error
System.out.println("Page: "+i+"Margin Error:LeftMArginError ");
}
但如果页面包含图像,这将不起作用。虽然图像超出了边距,但我没有收到上述代码的错误,因为 finder.getLlx(); 函数似乎只适用于文本。
两个问题:
1) 循环浏览pdf中的页面时,如果该页面中有图像,我如何检查该特定页面是否包含图像?
2)如果它包含一个图像,我如何获得它的极端位置?
mkl 建议后更新
if(leftmar>=finder.getLlx())
{
errormargin=1; //left margin error
System.out.println("finder.getLlx() value ="+finder.getLlx()+", leftmar Value="+leftmar);
}
if(rightmar<= finder.getUrx()){
errormargin=1; //right margin error
System.out.println("finder.getUrx() value ="+finder.getUrx()+", rightmar Value="+rightmar);
}
if(margintop >= finder.getUry()){
errormargin=3; //top margin error
System.out.println("finder.getUry() value ="+finder.getUry()+", margintop Value="+margintop);
}
if(marginbottom >= finder.getLly()){
errormargin=3; //bottom margin error
System.out.println("finder.getLly() value ="+finder.getLly()+", marginbottom Value="+marginbottom);
}
【问题讨论】:
-
所以本质上您希望图像受到边距的限制(即不扩大它)或者您是否希望在一个确实经过时升起一个标志(以便您可以执行操作) ?
-
这正是我的限制。
-
我正在使用
TextMarginFinder- 考虑使用 MarginFinder 代替,this answer 中使用的类。此类还考虑位图图像和矢量图形;不过,对于后者,它处于概念验证状态。 -
事实上我使用的是同一个类,用于查找我能够找到的文本的位置,但不是图像的位置。您能否提供一些代码 sn-p 或与您所说的内容相关的内容?
-
事实上我正在使用同一个类来查找文本的位置 - 你确定你已经使用了我链接到的类吗?在这种情况下,您能否分享一个不返回任意内容(包括图像)位置的示例 PDF? 你能提供一些代码 sn-p - 给出我链接到的答案。
标签: java pdf itext pdf-parsing pdfrenderer