Here's the code for opening an attachment when clicking on an annotation. It
opens up the corresponding attachment (documents and tiff images) when the
annotation is double-clicked. Also, when the attached word document opens
up, it does have the "Save As" functionality. 

Attached is a sample PDF file generated by the code below. 

The code attaches 3 word documents and 3 tiff images, as "CORRESPONDENCE
DOCUMENTS" and "IMAGES" section, respectively. 


--------------------------------------- code starts
---------------------------------------------------

                Document document = new Document();
                Color redColor = new Color(255, 0, 0);
                Color blueColor = new Color(0, 0, 255);
                Color grayColor = new Color(100, 100, 100);
                Color greenColor = new Color(0, 255, 0);
                        
                Font redFont = new Font(Font.TIMES_ROMAN, 12, Font.BOLD, 
redColor);
                Font blueFont = new Font(Font.TIMES_ROMAN, 10, Font.NORMAL, 
blueColor);
                     Font grayFont = new Font(Font.COURIER, 9, Font.NORMAL,
grayColor);
                Font greenFont = new Font(Font.TIMES_ROMAN, 10, Font.NORMAL, 
greenColor);
                
                ByteArrayOutputStream baosPDF = new ByteArrayOutputStream();
                PdfWriter writer = null;
        
                try{
                        writer = PdfWriter.getInstance(document, baosPDF);      
                
                }
                catch (DocumentException e){
                        e.printStackTrace();
                }
                
                document.setPageSize(PageSize.LETTER);
                        
                HeaderFooter header = new HeaderFooter(new Phrase("My Header", 
grayFont),
false);
                header.setAlignment(0);
                document.setHeader(header);
                        
                HeaderFooter footer = new HeaderFooter(new Phrase("My Footer", 
grayFont),
false);
                footer.setAlignment(2);
                document.setFooter(footer);
                
                document.open();
                Image testImage = Image.getInstance("C:/word.jpg");

                Paragraph title = new Paragraph("WORKITEM PRINT REPORT", 
redFont);
                title.setAlignment(1);
                document.add(title);
                        
                Paragraph emptyPara = new Paragraph("   ");
                document.add(emptyPara);
                document.add(emptyPara);
                        
                Paragraph currentDate = new Paragraph("Create Date: "+ new
java.util.Date(), blueFont);
                document.add(currentDate);
                        
                Paragraph correspondencePara = new Paragraph("CORRESPONDENCE 
DOCUMENTS");
                document.add(correspondencePara);
                
                PdfFileSpecification pf = null;
                byte[] b = null;
                PdfAnnotation annot = null;
                String filePath = "C:/Test.doc";
                for(int i = 1;i < 4;i++){
                        b = getBytesFromFile(filePath);
                        try{
                                annot = 
PdfAnnotation.createFileAttachment(writer, new Rectangle(300, i
* 250, 300, i * 250), "Attachment "+i, b, "", "Test.doc");
                        }
                        catch(IOException e){
                                e.printStackTrace();
                        }
                        
                        annot.setPage();
                        annot.setColor(new Color(122,122,122));
                        writer.addAnnotation(annot);
                }
                document.newPage();

                Paragraph attachmentPara = new Paragraph("ATTACHMENTS");
                document.add(attachmentPara);
                
                filePath = "C:/Test.tiff";
                for(int i = 1;i < 4;i++){
                        b = getBytesFromFile(filePath);
                        try{
                                annot = 
PdfAnnotation.createFileAttachment(writer, new Rectangle(300, i
* 250, 300, i * 250), "Images "+i, b, "", "Test.tiff");
                        }
                        catch(IOException e){
                                e.printStackTrace();
                        }
                        annot.setPage();
                        annot.setColor(new Color(122,122,122));
                        writer.addAnnotation(annot);
                }

                document.close(); 
                StringBuffer sbFilename = new StringBuffer();
                sbFilename.append("MyTestPdf.pdf");
                
                System.out.println(sbFilename);  
                baosPDF.writeTo(new 
FileOutputStream("C:/Test/"+sbFilename.toString()));
        
------------------------------------------ code ends
-------------------------------------------------

If you run this sample code, you can see the PDF file with a total of 6
attachments. I need a little help where instead of annotation's default
image, i need to actually give the Image object, representing the
"C:/word.jpg". I tried the following code instead 

--------------------------------------- one line code starts
-------------------------------------------

annot = PdfAnnotation.createFileAttachment(writer, testImage, "Images "+i,
b, "", "Test.tiff");

--------------------------------------- one line code ends
--------------------------------------------


instead of 

--------------------------------------- one line code starts
-------------------------------------------

annot = PdfAnnotation.createFileAttachment(writer, new Rectangle(300, i *
250, 300, i * 250), "Images "+i, b, "", "Test.tiff");
http://www.nabble.com/file/p17662151/MyTestPdf.pdf MyTestPdf.pdf 
--------------------------------------- one line code ends
--------------------------------------------

but could not get the desired result.

Also, is there a better way of arranging the annotations instead of setting
their x and y coordinates?

Thanks.



Leonard Rosenthol wrote:
> 
> On Jun 4, 2008, at 7:01 AM, Paulo Soares wrote:
>> I couldn't find a way to create one in Acrobat 7 and the one I made by
>> moving refs around didn't work. Can you get me a pdf that launchs an
>> embedded file?
>>
>>
>       I just realized we didn't have any UI for it either ;).
> 
>       For the /F key on the launch action, you should point to an /EF  
> (embedded file).  I'll try to come up with a sample today, if I can  
> get a chance.
> 
> Leonard
> 
> 
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> iText-questions mailing list
> iText-questions@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/itext-questions
> 
> Do you like iText?
> Buy the iText book: http://www.1t3xt.com/docs/book.php
> Or leave a tip: https://tipit.to/itexttipjar
> 
> 

-- 
View this message in context: 
http://www.nabble.com/click-on-image-and-open-the-attachment-tp17623373p17662151.html
Sent from the iText - General mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Do you like iText?
Buy the iText book: http://www.1t3xt.com/docs/book.php
Or leave a tip: https://tipit.to/itexttipjar

Reply via email to