Hi,

Am 27.02.14 13:05, schrieb Nikos Chantziaras:
I suppose it's not possible to convert the jar files into DLLs with
ikvmc.exe? I tried that, but there's lots of error messages about
missing implementations. Has anyone tried that before?
That is exactly what I did. In most cases only the AWT stuff is affected. Most likely the whole rendering stuff won't work. OverlayPDF should work, at least you should give it a try.

BR
Andreas Lehmkühler

On 27/02/14 12:32, Andreas Lehmkühler wrote:
I'm afraid not. The Website provides an older Version of PDFBox only
as it becomes more difficult to compile a .NET version using IKVM.
Maybe you should try to compile your own version using a more recent
version if PDFBox.

BR
Andreas Lehmkühler

On 27. Februar 2014 10:55:07 MEZ, Nikos Chantziaras <rea...@gmail.com>
wrote:
I'm using this:

   http://pdfbox.lehmi.de

I suppose OverlayPDF is not included?


On 27/02/14 10:09, Maruan Sahyoun wrote:
Hi,

if you are using Overlay.java please use OverlayPDF.java instead.
Overlay.java will be removed in the next major release.

To add some highlight rectangle handling it yourself you can use

       PDDocument document = PDDocument.loadNonSeq( ... );
       PDPage page = (PDPage)
document.getDocumentCatalog().getAllPages().get(0);
          /* Set up the graphic state */

       // Define a new extended graphic state
       PDExtendedGraphicsState extendedGraphicsState = new
PDExtendedGraphicsState();
       // Set the transparency/opacity
       extendedGraphicsState.setNonStrokingAlphaConstant(0.5f);
       // Get the page resources.
       PDResources resources = page.findResources();

       // Get the defined graphic states.
       Map<String, PDExtendedGraphicsState> graphicsStateDictionary =
resources.getGraphicsStates();

       if (graphicsStateDictionary == null) {
           graphicsStateDictionary = new HashMap<String,
PDExtendedGraphicsState>();
       }

       graphicsStateDictionary.put("TransparentState",
extendedGraphicsState);
       resources.setGraphicsStates(graphicsStateDictionary);

       /* End of setup */

       // Now we will be able to call the state definition before
doing the drawing
       PDPageContentStream contentStream = new
PDPageContentStream(document, page,true,true);
       contentStream.appendRawCommands("/TransparentState gs\n");
       contentStream.setNonStrokingColor(Color.yellow);

       // put in the coordinates for the rectangle found by the text
extraction
       contentStream.fillRect(100f,100f,100f,100f);
       contentStream.close();

       document.save( ... );

null checks, error handling etc. is omitted so the code is clearer.

For the annotations - how did you print the PDF? If you print it
using e.g. Adobe Reader printing the annotations is optional and has to
be activated in the printer dialog, otherwise they will be omitted.

BR
Maruan Sahyoun



Am 26.02.2014 um 23:48 schrieb Nikos Chantziaras <rea...@gmail.com>:

That doesn't work, it turns out. Only the test PDFs were working.
Trying to overlay "real" PDFs result in an error that Cos Arrays are
not supported.

So I then tried to use PDF annotations instead. This seemed to work
fine. However, when someone tried to print the PDF, annotated text was
not highlighted at all, even though it looks just fine on screen!

So I'm out of ideas. It would appear that PDFBox is indeed incapable
of highlighting text?


On 17/02/14 17:18, Nikos Chantziaras wrote:
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.)

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
<rea...@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?






Reply via email to