Developer Tools
|
Office Productivity Applications
|
Platform-Agnostic APIs
|
||||||||||||||||||||||||||







Home | Online Demos | Downloads | Buy Now | Support | About Us | News | Working Together | Contact Us
There are two ways for creating PDF file attachments. One is to create a document-level file attachment. The other is to create a file attachment annotation.
Like all annotations, file attachment annotations are bound to a page. A viewer application, such as Adobe Reader, will use a paperclip, tag, graph or pushpin icon to display a file attachment annotation on a page . When users click these icons, the viewer application will show a prompt and offer to launch or save the embedded file.

Here is the code to create a page-level PDF file attachment.
public static void main(String[] args)
throws IOException, PdfException {
// Create a file attachment annotation and set its properties
PdfFileAttachmentAnnot fa =
new PdfFileAttachmentAnnot(10,10,Color.RED);
fa.setIcon(PdfFileAttachmentAnnot.ICON_PAPERCLIP);
fa.setTitle("PDF File Attachments Demo");
fa.setSubject("Embed file using a file attachment annotation");
fa.setContents("Double-click the icon for the file attachment");
fa.setFilePath("sample_file.txt");
fa.setRect(10,10,20,40);
// Add an optional popup window for the annotation
// Note: A file attachment annotation does not usually
// have a regular popup window.
PdfPopUpAnnot popup = new PdfPopUpAnnot();
popup.setRect(40,80,170,120);
fa.setPopup(popup, false);
// Open a PDF document for editing
PdfDocument doc = new PdfDocument();
doc.load("sample_doc.pdf");
// Add file attachment to page #1
doc.addAnnotation(fa,1);
doc.setOpenAfterSave(true);
// Make viewer applications show attachments panel
doc.setPageMode(PdfPageMode.USEATTACHMENTS);
// Save file and clean up
doc.save("sample_doc_with_attachment_annotation.pdf");
doc.close();
}
These attachments are not bound to a page. They are document-level resources in a PDF document. A viewer application such as Adobe Reader will show these files in a special attachments panel.*

public static void main(String[] args)
throws IOException, PdfException {
// Open a PDF document for editing
PdfDocument doc = new PdfDocument();
doc.load("sample_doc.pdf");
// Add file attachment
doc.attachDocument("sample_file.txt");
doc.setOpenAfterSave(true);
// Make viewer applications show attachments panel
doc.setPageMode(PdfPageMode.USEATTACHMENTS);
// Save file and clean up
doc.save("sample_doc_with_document_level_attachment.pdf");
doc.close();
}
* - Please note that a file embedded using a file attachment annotation will also be displayed in the attachments panel.
---o0O0o---
| Our .NET Developer Tools | |
|---|---|
Gnostice Document Studio .NETMulti-format document-processing component suite for .NET developers. |
PDFOne .NETA .NET PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, and bookmark PDF documents in .NET applications. |
| Our Delphi/C++Builder developer tools | |
|---|---|
Gnostice Document Studio DelphiMulti-format document-processing component suite for Delphi/C++Builder developers, covering both VCL and FireMonkey platforms. |
eDocEngine VCLA Delphi/C++Builder component suite for creating documents in over 20 formats and also export reports from popular Delphi reporting tools. |
PDFtoolkit VCLA Delphi/C++Builder component suite to edit, enhance, view, print, merge, split, encrypt, annotate, and bookmark PDF documents. |
|
| Our Java developer tools | |
|---|---|
Gnostice Document Studio JavaMulti-format document-processing component suite for Java developers. |
PDFOne (for Java)A Java PDF component suite to create, edit, view, print, reorganize, encrypt, annotate, bookmark PDF documents in Java applications. |
| Our Platform-Agnostic Cloud and On-Premises APIs | |
|---|---|
StarDocsCloud-hosted and On-Premises REST-based document-processing and document-viewing APIs |
| Privacy | Legal | Feedback | Newsletter | Blog | Resellers | © 2002-2026 Gnostice Information Technologies Private Limited. All rights reserved. |