PathRenderInfo . PathRenderInfo iText 7. , :
public static void main(String args[]) throws IOException {
PdfDocument document = new PdfDocument(new PdfReader(SRC));
PdfPage page = document.getPage(1);
PdfCanvasProcessor processor = new PdfCanvasProcessor(new IEventListener() {
public void eventOccurred(IEventData data, EventType type) {
if (type == EventType.RENDER_PATH) {
PathRenderInfo renderinfo = (PathRenderInfo) data;
int i = renderinfo.getOperation();
switch (i) {
case 1:
System.out.print("Stroke: ");
break;
case 2:
System.out.print("Fill: ");
break;
default:
System.out.print("No: ");
}
for (Subpath p : renderinfo.getPath().getSubpaths()) {
for (IShape shape : p.getSegments()) {
for (Point point : shape.getBasePoints()) {
System.out.println(String.format("x = %s; y = %s", point.getX(), point.getY()));
}
}
}
}
}
public Set<EventType> getSupportedEvents() {
return null;
}
});
processor.processPageContent(page);
}
PDF , () :
Stroke: x = -406.0; y = -240.0
x = 406.0; y = -240.0
x = -406.0; y = -200.0
x = 406.0; y = -200.0
x = -406.0; y = -160.0
x = 406.0; y = -160.0
x = -406.0; y = -120.0
x = 406.0; y = -120.0
x = -406.0; y = -80.0
x = 406.0; y = -80.0
x = -406.0; y = -40.0
x = 406.0; y = -40.0
x = -406.0; y = 0.0
x = 406.0; y = 0.0
x = -406.0; y = 40.0
x = 406.0; y = 40.0
x = -406.0; y = 80.0
iText 7, , , PathRenderInfo, Subpath IShape.
Update:
, , . :

PDF-, :

, :
/C: : = 0, = 0, = 1 (, )/LE: ( : )L: (x = 20, y = 790) (x = 575, y = 790)- ...
, ?
. /Rect. ([0 0 0 0]), , , /L.