按照给定的示例,pdfClown既可以突出显示特定的文本,也可以围绕各自的单词绘制矩形。
是否有可能在Adobe Acrobat之后使此反应角可编辑?
我当前的工作流程(按计划):
我不能(例如)在我所能看到的范围内,用Acrobat Reader在以前高亮显示的单词周围拖动矩形。我使用pdfClown的网页中提供的例子来绘制每个字符的反作用力。
有什么我忘了考虑的吗?
File inFile = null;
String inFilePath = "/path/to/inputFile/input_highlight.pdf";
String outDirPath = "/tmp";
try {
inFile = new File(inFilePath);
} catch (Exception e) {
throw new RuntimeException(inFilePath + " file access error.", e);
}
Document document = inFile.getDocument();
Pages pages = document.getPages();
PageStamper stamper = new PageStamper();
for (Page page : pages) {
stamper.setPage(page);
PageAnnotations annotations = page.getAnnotations();
for (Annotation annotation : annotations) {
if (annotation.getColor() == null) {
continue;
}
Rectangle2D textStringBox = annotation.getBox();
PrimitiveComposer composer = stamper.getBackground();
composer.setStrokeColor(DeviceRGBColor.Black);
textStringBox.setRect(annotation.getBox().getX(), annotation.getBox().getY(), annotation.getBox().getWidth(), annotation.getBox().getHeight());
composer.drawRectangle(textStringBox);
composer.stroke();
composer.beginLocalState();
composer.setStrokeColor(DeviceRGBColor.Black);
composer.end();
stamper.flush();
System.out.println("Text: " + annotation.getText());
System.out.println("Color: " + annotation.getColor());
System.out.println("Coordinates: " + annotation.getBox().toString());
annotation.setColor(DeviceRGBColor.White);
}
}发布于 2016-02-10 08:45:48
看上去你的主要问题是
我不能(例如)用Acrobat在以前高亮显示的单词周围拖动矩形
原因是您在页面内容中绘制了矩形(您使用的PageStamper被记录为将内容插入到现有页面的工具)。页面内容是固定的,特别是就Acrobat而言;Acrobat只允许移动注释。
如果您想要一个矩形,您可以拖动,因此,您必须使用矩形注释。矩形注释可以创建如下所示:
new org.pdfclown.documents.interaction.annotations.Rectangle(
page,
new Rectangle(50, 370, 100, 30),
"Text of the Rectangle annotation"
).withColor(DeviceRGBColor.get(Color.RED))
.withBorder(new Border(1, new LineDash(new double[]{5})))
.withAuthor("Stefano")
.withSubject("Rectangle")
.withPopup(new Popup(
page,
new Rectangle2D.Double(200, 325, 200, 75),
"Text of the Popup annotation (this text won't be visible as associating popups to markup annotations overrides the former's properties with the latter's)"
));您还提到要添加一个标注;可以像这样创建一个标注注释:
new StaticNote(
page,
new Rectangle(250, 90, 150, 70),
"Text of the Callout note annotation"
).withLine(
new StaticNote.CalloutLine(
page,
new Point(250,125),
new Point(150,125),
new Point(100,100)
)
)
.withLineEndStyle(LineEndStyleEnum.OpenArrow)
.withBorder(new Border(1))
.withColor(DeviceRGBColor.get(Color.YELLOW));https://stackoverflow.com/questions/35088168
复制相似问题