• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
2

Javascript to Embed file attachment

Community Beginner ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

I found a Javascript on the forum that allows me to have a form user attach a file in Adobe Reader to a PDF form.  The script is below and works great...as long as I am viewing the saved document on a computer.  I have discovered that Adobe Reader Mobile doesn't recognize file attachments added as annotations (only embedded files).  Can someone help me modify this script so that the file is actually embedded and not added as an annotation?  My follow-up question is the javascript to detach the file with a button.  I am using Adobe Acrobat DC to program the form.  Thank you so much for your help!!!

The way this is programmed is that on the button itself with a Mouse Up action, the following Javascript is run:

if (app.viewerVersion < 11) {

    import_pre_11();

} else {

    import_11();

}

Then there is a document level javascript for attaching the file that is programmed like this:

// Initialize attachment number

attachment_num = 1;

// Initial location of file attachment icon

// The x value is incremented below

var oFAP = {x_init: -72, x: -72, y: -72};  // Below lower-left corner of the page

function import_pre_11() {

    if (app.viewerType === "Reader") {

        app.alert({

            cMsg: "You must user Reader version 11 or later to attach files to this form.",

            cTitle: "Attach File Error",

            nIcon: 3,

            nType: 0

        });

   

        return;

    }

    // Prompt user to import a file

    app.alert({

        cMsg: "Click the OK button to select a file from your system.",

        cTitle: "Attach File",

        nIcon: 3,

        nType: 0

    });

   

    try {

   

        var rc = this.importDataObject("Attachment" + attachment_num);

        if (rc) {

            attachment_num += 1;

            app.alert({

                cMsg: "Attachment successful.\r\rOpen the Attachments panel to access the attached file(s).",

                cTitle: "Attachment Successful",

                nIcon: 3,

                nType: 0

            });

           

        } else {

            app.alert({

                cMsg: "Attachment cancelled.",

                cTitle: "Attachment Cancelled",

                nIcon: 3,

                nType: 0

            });

        }

       

       

    } catch (e) {

        app.alert({

            cMsg: "Could not attach file.",

            cTitle: "Could not attach file",

            nIcon: 3,

            nType: 0

        });

    }

}

function import_11() {

    try {

        var annot = addAnnot({

            page: event.target.page,

            type: "FileAttachment",

            author: "Form user",

            name: "File Attachment",

            point: [oFAP.x, oFAP.y],

            contents: "File attachment on: " + util.printd("yyyy/mm/dd HH:MM:ss", new Date()),

            attachIcon: "Paperclip"

        });

        annot.cAttachmentPath; // Prompt user to select a file to attach

       

        oFAP.x += 18;  // Increment the x location for the icon

       

       

    } catch (e) {

        app.alert({

            cMsg: "Could not attach file.\r\rPlease report this error.",

            cTitle: "File attachment error",

            nIcon: 3,

            nType: 0

        });

    }

   

}

TOPICS
Acrobat SDK and JavaScript

Views

10.3K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

LEGEND , Feb 21, 2016 Feb 21, 2016

I know, I wrote it. Reader cannot add embedded files, even manually, unless the file is Reader-enabled with the embedded file attachment usage right.

Votes

Translate

Translate
LEGEND ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

Reader can't add embedded file attachments unless the document has been Reader-enabled with LiveCycle Reader Extensions and the embedded file attachments usage right has been applied.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

Actually, using Reader XI or higher you can attach a file to the PDF using the Attach File commenting tool.

This is what the script above is using and it should work, if used correctly.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

I'm using Adobe Reader DC.  The button works and attaches the file but when I go to view it on an iPad, there is no attachment showing.  The only way I can get an attachment to show on the iPad is to use the actual Add a New Attachment paperclip which I can only find in Adobe Acrobat DC.  Searching the web, I found somewhere that said Reader Mobile could only see attachments that were embedded.  I'm trying to figure out a way so that the user can attach the file in Reader and then the end user can see the finished form with attachment in Reader on the iPad.  Is this possible?  I have a large number of files and could run an action on them if that was necessary...that is what I am having to do so the layered file can be viewed on the iPad so adding another action step wouldn't cause additional work if that is what needs to happen. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

Most scripts, including this one, are not going to work on mobile devices.

On Sun, Feb 21, 2016 at 9:58 PM, tracyy42935226 <forums_noreply@adobe.com>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

I'm not sure that I asked this question clearly enough (or rather, try67 I KNOW if there is a way, you'll know it so I'm just going to clarify my question).  I do not need the 'attach document' button to work on the iPad...the user will attach the document on a desktop computer using Reader DC.  What I need is for that attachment to be viewable on an iPad. 

When I use the above script to attach a document, it isn't showing up on the iPad.  However, if I use Adobe Acrobat DC to attach the file by manually pushing the paperclip Add Attachment button, then the iPad will show the attachment.

For example, my form has two attachments- 1 added with the script above (Attachment A) and 1 added with paperclip (Attachment B).  In Adobe Acrobat Mobile, it only shows that the form has one attachment (Attachment B)...Attachment A is no where to be seen.

I'm deducting that somehow this paperclip attaching process is embedding the attachment differently than the script...I'm trying to figure out what that difference is so I can add that to the javascript.    Is this still impossible?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

Can you name any computer that uses the chip set of the iPone 5 or 6?

Mobile devices are very different from a full computer and they do now have all needed resources to perform the tasks that user computers do. They also have a very different file system so any directory reference might not be same as in Windows or a computer iOS.

You mobile device does not support all the services needed by your script.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

I'm the one that created that script, and I programmed it the way I did because Reader cannot add the type of file attachments (embedded, as opposed to comment) you want unless the document has been Reader-enabled, as I explained above. So what you want to do doesn't work with Reader since Reader can't (normally) add embedded files.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Sep 11, 2023 Sep 11, 2023

Copy link to clipboard

Copied

LATEST

You are a genius for your creations.  I need something similar that will attach and image and leave a thumbnail on the button all in one click, once the file is chosen.  Any ideas on making that happen?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 21, 2016 Feb 21, 2016

Copy link to clipboard

Copied

I know, I wrote it. Reader cannot add embedded files, even manually, unless the file is Reader-enabled with the embedded file attachment usage right.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Feb 22, 2016 Feb 22, 2016

Copy link to clipboard

Copied

Thank you George_Johnson for the clarification.  Does the form itself AND the attachment have to be altered to allow for the attachment to be embedded?  It may be worth it to me to explore LiveCycle Reader Extensions if only the form itself must be altered (I won't have access to change the attachments themselves prior to the user needing to attach them). 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 22, 2016 Feb 22, 2016

Copy link to clipboard

Copied

The form must have the usage rights.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 07, 2016 Nov 07, 2016

Copy link to clipboard

Copied

See below... Once you create the annotation of type "FileAttachment", you can "link" the newly created object to a file by using the "magical" Annotation.cAttachmentPath.  This will launch a file-selector and prompt the user to select a file from their computer. 

I for one am still confused as to how this works AND I am also confused as to how to access this path from the Annotation object after it's created. 

Question to the experts... Since Document.importDataObject() is not an option due to the cost, complexity, etc. of bypassing the security issues... HOW CAN I later ACCESS the cAttachmentPath of the annot object once is has been selected?

var annot = addAnnot({

            page: event.target.page,

            type: "FileAttachment",

            author: "Form user",

            name: "File Attachment",

            point: [oFAP.x, oFAP.y],

            contents: "File attachment on: " + util.printd("yyyy/mm/dd HH:MM:ss", new Date()),

            attachIcon: "Paperclip"

        });

        annot.cAttachmentPath; // Prompt user to select a file to attach

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 07, 2016 Nov 07, 2016

Copy link to clipboard

Copied

You can't.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 22, 2016 Oct 22, 2016

Copy link to clipboard

Copied

Thank you for publishing this script. My question is: how can you link the script to a specified file on the computer / network??

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Oct 22, 2016 Oct 22, 2016

Copy link to clipboard

Copied

I'm not sure what you mean by "link the script to a specified file". Can you elaborate on how you want it to work?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 22, 2016 Oct 22, 2016

Copy link to clipboard

Copied

Thanks for the quick reply. I want to connect a folder with a collection of files ( pdf, jpg etc) coming with the form. By filling the form it should be possible to attach a file from the folder by chosing f.e. a (radio) button. just like your script but a "given/set" file per button. I want to create a patient inform file: a info sheet should be attached for each desease the patient chooses. Thanks for your help!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Oct 22, 2016 Oct 22, 2016

Copy link to clipboard

Copied

That's possible with Acrobat, but the code that attaches the files would have to be included in a folder-level JavaScript file. It's only possible with Reader if the document is Reader-enabled to include the Embed File Attachments usage right, something Acrobat cannot do.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines