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 <[email protected]>:
> 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 <[email protected]>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 <[email protected]>:
>>
>>> 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
>>
>>