pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tilman Hausherr <THaush...@t-online.de>
Subject Re: [External] Re: issue creating hyperlink in pdf
Date Thu, 04 Oct 2018 18:38:31 GMT
Hello Diane,

See the Annotation.java example in the 1.8 source code download. Re 
PDGamma, you can keep the default (i.e. "new PDGamma()") which is 0 0 0 
i.e. black.

You need the part that has "txtLink".

So you need this:

                 PDBorderStyleDictionary borderULine = new 
PDBorderStyleDictionary();
borderULine.setStyle(PDBorderStyleDictionary.STYLE_UNDERLINE);
                 borderULine.setWidth(inch/72); // 1 point
                 PDAnnotationLink txtLink = new PDAnnotationLink();
                 txtLink.setBorderStyle(borderULine);
                 position = new PDRectangle();
                 position.setLowerLeftX(...);
                 position.setLowerLeftY(...);
                 position.setUpperRightX(...);
                 position.setUpperRightY(...);
                 txtLink.setRectangle(position);
                 // add an action
                 PDActionURI action = new PDActionURI();
                 action.setURI("http://www......");
                 txtLink.setAction(action);

                 annotations.add(txtLink);

Trick to get the coordinates: run the 2.0.11 PDFDebugger and open your 
existing PDF file. Move the mouse at the rectangle positions (lower left 
and upper right) and you'll see the positions at the status line.

The rectangle is the "hot" area, i.e. the one where the link would be 
launched.

Note that the link annotation is just the underline and the "effect". To 
output the text, you need to write into the content stream as usual.

Tilman

Am 04.10.2018 um 15:07 schrieb Haddy, Diane E:
> Hello Tillman
>
> We are using the 1.8.10.jar and I created the pdf from scratch.   My pdf is complete
and at the last minute the end user requested the link close to top of the page.   Can I use
the code sample I provided and tweak it?   If I do use the PDGamma class do I need to create
a method to return a PDGamma object for the color black?  Any suggestions will be very helpful.
 Thank you too for the explanation about coordinates.
>
> Diane
>
> -----Original Message-----
> From: Tilman Hausherr <THausherr@t-online.de>
> Sent: Wednesday, October 03, 2018 11:09 PM
> To: users@pdfbox.apache.org
> Subject: [External] Re: issue creating hyperlink in pdf
>
> Hello Diane,
>
> If you're just starting, then use 2.0.11 and not 1.8 from which this example is coming.
There get the 2.0.11 source download, there go to the example subdirectory, and get AddAnnotations.java.
Get it to run. If you get it running, delete all that you don't need so that only one link
annotation is left.
>
> If the annotation is to be black, then the color is
>
> PDColor black = new PDColor(new float[] { 0, 0, 0 }, PDDeviceRGB.INSTANCE);
>
> In RGB colorspace, the colors are red green blue and 0 0 0 is black and
> 1 1 1 is white. 1 0 0 is  red. 1 1 0 is yellow.
>
> In the gray colorspace, 0 is black and 1 is white.
>
> The coordinates start at the bottom left. (unlike java imaging where it starts at the
top left).
>
> An A4 Page is about 600 x 800. (this is not exact, it's probably more like 650 x 750)
>
> Are you creating a PDF completely from scratch or do you need to modify an existing PDF,
i.e. just add the unline and the link destination?
>
> Tilman
>
> Am 03.10.2018 um 22:27 schrieb Haddy, Diane E:
>> Hello
>>
>> I have a task to create a hyperlink on a pdf page.  I googled and found some code.
 I am not good with coordinates and do not know anything about pdfbox PDGamma class and how
to add the color black to the text.   Can you please help me?
>>
>> CODE:
>>
>> PDBorderStyleDictionary psd = new PDBorderStyleDictionary();
>>               psd.setStyle(PDBorderStyleDictionary.STYLE_UNDERLINE);
>>               PDAnnotationLink txtLink = new PDAnnotationLink();
>>               txtLink.setBorderStyle(psd);
>>              // txtLink.setColour(PDGamma  colourBlack);
>>
>>                //add action
>>               PDActionURI action = new PDActionURI();
>>               action.setURI("http://mycode.here.com");
>>               txtLink.setAction(action);
>>
>>                //populate the url using these coordinates
>>               PDRectangle rec = new PDRectangle();
>>               rec.setLowerLeftX(10);
>>               rec.setLowerLeftY(20);
>>               rec.setUpperRightX(100);
>>               rec.setUpperRightY(10);
>>               txtLink.setRectangle(rec);
>>               page.getAnnotations().add(txtLink);
>>
>>
>> thank you,
>> Diane
>>
>>
>>
>> Diane Haddy
>>
>> Health Care Information Systems
>> Application Developer
>>
>>
>> ________________________________
>> Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic
Communications Privacy Act, 18 U.S.C. 2510-2521 and is intended only for the use of the individual
or entity to which it is addressed, and may contain information that is privileged, confidential,
and exempt from disclosure under applicable law. If you are not the intended recipient, any
dissemination, distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender immediately and delete
or destroy all copies of the original message and attachments thereto. Email sent to or from
UI Health Care may be retained as required by law or regulation. Thank you.
>> ________________________________
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>
>
>
> ________________________________
> Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic
Communications Privacy Act, 18 U.S.C. 2510-2521 and is intended only for the use of the individual
or entity to which it is addressed, and may contain information that is privileged, confidential,
and exempt from disclosure under applicable law. If you are not the intended recipient, any
dissemination, distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender immediately and delete
or destroy all copies of the original message and attachments thereto. Email sent to or from
UI Health Care may be retained as required by law or regulation. Thank you.
> ________________________________
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message