pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Chow <eric...@gmail.com>
Subject Re: Add a transparent rectangle to the existed PDF with the co-ordinates.
Date Wed, 20 Mar 2013 08:54:12 GMT
Dear Maruan,

Thank you very much. It works fine.
I tried iText before and it can draw a rectangle by using UnderContent!

Is it possible to do this in PDFBox?

Best regards,
Eric






On Wed, Mar 20, 2013 at 3:34 PM, Maruan Sahyoun <sahyoun@fileaffairs.de>wrote:

> Hi Eric,
>
> a slightly enhanced sample with transparency.
>
>
>             // For simplicity the code provided doesn't have any null
> checks or
>             // exception handling !!
>
>             PDDocument document = PDDocument.load(...);
>             PDPage page = (PDPage)
> document.getDocumentCatalog().getAllPages().get(0);
>
>             // The transparency, opacity of graphic objects can't be set
> directly on the drawing commands.
>             // Instead we need to define a graphic state which will become
> part of the
>             // resources. That state can be called later prior to doing
> the graphic operations.
>             // That's part of the ISO/PDF specification [ISO-32000: 8.4.1]
>
>             /* --------- Set up the graphic state -------------- */
>
>             // Define a new extended graphic state
>             PDExtendedGraphicsState extendedGraphicsState = new
> PDExtendedGraphicsState();
>             // Set the transparency/opacity
>             extendedGraphicsState.setNonStrokingAlphaConstant(0.8f);
>             // Get the page resources.
>             PDResources resources = page.findResources();
>             // Get the defined graphic states.
>             Map graphicsStateDictionary = resources.getGraphicsStates();
>             // Add the new state definition. The name is the reference we
> need later on.
>             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);
>             // Call the graphic state using the name defined
>             contentStream.appendRawCommands("/TransparentState gs\n");
>             contentStream.setNonStrokingColor(Color.yellow);
>             contentStream.fillRect(100, 100, 200, 200);
>             contentStream.close();
>             document.save(...);
>             document.close();
>
>
> Kind regards
>
> Maruan Sahyoun
>
> Am 20.03.2013 um 02:53 schrieb Eric Chow <eric138@gmail.com>:
>
> > Hi Maruan,
> >
> > Thanks for your example. But I don't want to using annotation since it
> can
> > be deleted.
> >
> > I want to really highlight the text by giving the co-ordinate? Would you
> > please to show me a simple example?
> >
> > Best regards,
> > Eric
> >
> >
> >
> >
> > On Tue, Mar 19, 2013 at 3:21 PM, Maruan Sahyoun <sahyoun@fileaffairs.de
> >wrote:
> >
> >> Hi Eric,
> >>
> >> I did something similar for one of our customers. I didn't use a
> rectangle
> >> but a highlight annotation. A sample for annotations can be found at [1]
> >>
> >> Kind regards
> >>
> >> Maruan Sahyoun
> >>
> >>
> >>
> http://svn.apache.org/repos/asf/pdfbox/branches/before-maven-layout/src/org/pdfbox/examples/pdmodel/Annotation.java
> >>
> >> Am 19.03.2013 um 03:42 schrieb Eric Chow <eric138@gmail.com>:
> >>
> >>> Hello,
> >>>
> >>> How can I add a transparent yellow rectangle to a specific co-ordinate
> >>> (llx, lly, urx, ury) into an existed PDF?
> >>>
> >>>
> >>> In fact, I want to highlight some text that I know the exact position
> in
> >>> the PDF. Would you please to teach me?
> >>>
> >>>
> >>> Best regards,
> >>> Eric
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message