try
{
/*
NOTE: This statement instructs the PDF viewer to navigate to the given URI when the link is clicked.
*/
Link link = new Link(
page,
new Rectangle(240,100,100,50),
new GoToURI(
document,
new URI("http://www.sourceforge.net/projects/clown")
)
);
link.setBorder(
new Border(
document,
3,
Border.StyleEnum.Beveled,
null
)
);
}
catch(Exception exception)
{throw new RuntimeException(exception);}
}
/*
2.2. Embedded-goto link.
*/
{
// Get the path of the PDF file to attach!
String filePath = promptPdfFileChoice("Please select a PDF file to attach");
/*
NOTE: These statements instruct PDF Clown to attach a PDF file to the current document.
This is necessary in order to test the embedded-goto functionality,
as you can see in the following link creation (see below).
*/
int fileAttachmentPageIndex = page.getIndex();
String fileAttachmentName = "attachedSamplePDF";
String fileName = new java.io.File(filePath).getName();
FileAttachment attachment = new FileAttachment(
page,
new Rectangle(0, -20, 10, 10),
new FileSpec(
EmbeddedFile.get(
document,
filePath
),
fileName
)
);
attachment.setName(fileAttachmentName);
attachment.setText("File attachment annotation");
attachment.setIconType(FileAttachment.IconTypeEnum.PaperClip);
blockComposer.begin(new Rectangle2D.Double(30,170,200,50),AlignmentXEnum.Left,AlignmentYEnum.Middle);
composer.setFont(font,12);
blockComposer.showText("Embedded-goto link");
composer.setFont(font,8);
blockComposer.showText("\nIt allows you to navigate to a destination within an embedded PDF file.");
composer.setFont(font,5);
blockComposer.showText("\n\nClick on the button to go to the 2nd page of the attached PDF file (" + fileName + ").");
blockComposer.end();
/*
NOTE: This statement instructs the PDF viewer to navigate to the page 2 of a PDF file
attached inside the current document as described by the FileAttachment annotation on page 1 of the current document.
*/
Link link = new Link(
page,
new Rectangle(240,170,100,50),
new GoToEmbedded(
document,
new GoToEmbedded.TargetObject(
document,
fileAttachmentPageIndex, // Page of the current document containing the file attachment annotation of the target document.
fileAttachmentName, // Name of the file attachment annotation corresponding to the target document.
null // No sub-target.
), // Target represents the document to go to.
new RemoteDestination(
document,
1, // Show the page 2 of the target document.
Destination.ModeEnum.Fit, // Show the target document page entirely on the screen.
null // No view parameters.
) // The destination must be within the target document.
)
);
link.setBorder(
new Border(
document,
1,
Border.StyleEnum.Dashed,
new LineDash(new float[]{8,5,2,5})