pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikos Chantziaras <rea...@gmail.com>
Subject Re: Saving PDFHighlighter selection to PDF
Date Tue, 18 Feb 2014 12:36:58 GMT
I will be using C# for this (IKVM), but I'll try and submit a Java 
example once I have something workable.


On 17/02/14 19:29, Maruan Sahyoun wrote:
> you’re welcome. Maybe you can share a code snippet with us when you’re done - would
like to make it part of the documentation.
>
> BR
> Maruan Sahyoun
>
> Am 17.02.2014 um 17:57 schrieb Nikos Chantziaras <realnc@gmail.com>:
>
>> That should work nicely for finding character sequences and constructing rectangle
coordinates.
>>
>> Thank you very much for the help!
>>
>>
>> On 17/02/14 17:45, Maruan Sahyoun wrote:
>>> Hi,
>>>
>>> you can take a look at org.apache.pdfbox.examples.util.PrintTextLocations.java
which gives you a sample of outputting the location of individual characters.
>>>
>>> BR
>>> Maruan Sahyoun
>>>
>>>
>>> Am 17.02.2014 um 16:18 schrieb Nikos Chantziaras <realnc@gmail.com>:
>>>
>>>> I've come up with a good way to insert color-filled rectangles through the
use of Overlay (so that they are rendered behind the text instead of the front of it.)
>>>>
>>>> However, how do I get the text coordinates? For example, I'd like to get
the coordinates for every occurrence of the word "mark me" so that I can create a new PDDocument
with filled rectangles and then overlay the original over it. Currently, I have:
>>>>
>>>>   PDDocument document = PDDocument.load("src.pdf");
>>>>   PDDocument underContent = new PDDocument();
>>>>   PDPage underPage = new PDPage();
>>>>   PDPageContentStream contStrm = new PDPageContentStream(underContent,
>>>>                                                          underPage);
>>>>   contStrm.setNonStrokingColor(Color.yellow);
>>>>
>>>>   contStrm.fillRect(/* Here I need the coordinates */);
>>>>
>>>>   contStrm.close();
>>>>   underContent.addPage(underPage);
>>>>
>>>>   Overlay overlay = new Overlay();
>>>>   overlay.overlay(document, underContent);
>>>>   underContent.save("out.pdf");
>>>>   underContent.close();
>>>>
>>>>
>>>> On 17/02/14 13:52, Maruan Sahyoun wrote:
>>>>> [...]
>>>>> If you would like to make the highlight part of the PDF you could
>>>>> create an annotation or draw a rectangle behind the text.
>>>>>
>>>>> Steps would be a. find the text b. get the coordinates of the text c.
>>>>> create an annotation or a rectangle around the coordinates
>>>>>
>>>>> You could also use the information in the highlight xml file to get
>>>>> the coordinates for the annotation/rectangle
>>>>>
>>>>> Am 17.02.2014 um 12:09 schrieb Nikos Chantziaras <realnc@gmail.com>:
>>>>>
>>>>>> It is not apparent how to save a PDF after I highlight some text
in
>>>>>> it. For example:
>>>>>>
>>>>>> PDDocument doc = PDDocument.load("source.pdf"); PDFHighlighter hl
=
>>>>>> new PDFHighlighter(); java.io.FileWriter xml = new
>>>>>> java.io.FileWriter("tmp.xml"); hl.generateXMLHighlight(doc, "450",
>>>>>> xml);
>>>>>>
>>>>>> How do I now save source.pdf (or a copy of it, if overwriting is
>>>>>> not possible) with the text highlighted?


Mime
View raw message