You said Y coordinate is not the same on pdf, this is probably my problem on my pdf. How to get the right Y for the pdf?
On my test the x seems OK but not the Y. Le lun. 12 févr. 2024, 19:30, Frédéric Ravetier <fravet...@vikta.com> a écrit : > My goal is to draw on the same or a copy PDF a rectangle over the text, > for example to hide it or to draw a border around the text to show to the > user something about this text. > > > Le lun. 12 févr. 2024 à 19:14, Tilman Hausherr <thaush...@t-online.de> a > écrit : > >> It depends what you want to get. See the DrawPrintTextLocations.java >> example which shows several strategies to get the bounding boxes of >> individual glyphs and draw them on the screen (not in a PDF, so the Y >> coordinate is different). You would have to adjust the >> "Rectangle2D.Float" code to whatever you prefer|, or adjust >> |DrawPrintTextLocations to collect words like the mkl code does. >> >> Tilman >> >> On 12.02.2024 18:48, Frédéric Ravetier wrote: >> > Hello, >> > >> > I'd like to find some specific words in a PDF and draw a rectangle over >> > these words. >> > I'm using PDFBox 3.0.1 >> > >> > I found this to locate the words : >> > >> https://github.com/mkl-public/testarea-pdfbox2/blob/master/src/test/java/mkl/testarea/pdfbox2/extract/ExtractWordCoordinates.java >> > As you can see in the println, : >> > System.out.println(builder.toString() + " [(X=" + boundingBox.getX() + >> > ",Y=" + boundingBox.getY() >> > + ") height=" + boundingBox.getHeight() + " >> width=" + >> > boundingBox.getWidth() + "]"); >> > >> > I get : >> > MYSTRING [(X=29.862407684326172,Y=383.78765869140625) >> > height=7.098414897918701 width=50.3477668762207 ] >> > >> > in my prototype I print this information and copy and past x, y, height, >> > width into a block of code hardcoded >> > >> > PDPage page = document.getPage(0); >> > PDPageContentStream contentStream = new PDPageContentStream(document, >> > page, PDPageContentStream.AppendMode.APPEND, false); >> > contentStream.setNonStrokingColor(Color.RED); >> > contentStream.addRect(29.862407684326172f, 383.78765869140625f, >> > 50.3477668762207, 7.098414897918701f); >> > contentStream.fill(); >> > contentStream.close(); >> > document.save(new FileOutputStream(src_file_path.replace(".pdf", >> "-rect.pdf"))); >> > >> > >> > But it does not match the text on the PDF. >> > I tried to replace the height by the font size but it was not really >> better. >> > >> > Where is my mistake ? >> > >> > Best regards, >> > Fred >> > >> >