отправить вложения на submitform pdf - PullRequest
0 голосов
/ 11 июня 2019

Пользовательская история. Как пользователь, я хочу иметь возможность прикрепить документ (обычно в формате pdf) к форме в формате pdf, чтобы я мог доказать, что выполнил требуемую операцию для определенной позиции.

Я достигаю этого с помощью следующего кода javascript, связанного с событием мыши на кнопке в формате PDF:

// JavaScript source code
// 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




if (app.viewerVersion < 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

            });





        }



        // Prompt user to import a file

        app.alert({

            cMsg: "Click the OK/Open button after selecting the file from your system that you want to attach.",

            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

            });





    }



} else {


        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

            });



        }



    }

Это работает нормально, и я вижу прикрепленный документ, сидящий на боковой панели приложений,Пока проблем нет!

История пользователя (продолжение): Как пользователь, я хочу прикрепить вывод из формы (в XML, но XFDF допустимо) и загруженных вложенийна PDF в электронном письме.

Здесь я сталкиваюсь с проблемами.Я могу экспортировать данные формы в электронное письмо со следующим кодом (опять же, прикрепленным к событию мыши на кнопке):

    var url = "mailto:testemail@xyz.com?subject=My Subject&body=Here is my form data.";
this.submitForm({cURL: url, cSubmitAs: "XFDF"})

Я не могу найти на форумах Adobe или в StackOverflowкак я могу добавить прикрепленные документы на электронную почту.Я думаю, что логика заключается в том, чтобы «скопировать все вложения, содержащиеся в« списке вложений », и добавить их как вложения в электронное письмо», но я действительно не знаю, как это сделать.Я попробовал следующий код, но я думаю, что это больше связано с отправкой на веб-сервер, а не с электронной почтой:

   var oParent = event.target;



   // Get the list of attachments:

   var oDataObjects = oParent.dataObjects;

   if (oDataObjects == null)

      app.alert("This form has no attachments!");

   else {

      // Create the root node for the global submit:

      var oSubmitData = oParent.xfa.dataSets.createNode(

         "dataGroup",

         "globalSubmitRootNode"

      );



      // Iterate through all the attachments:

      var nChildren = oDataObjects.length;

      for (var iChild = 0; iChild < nChildren; i++) {



         // Open the next attachment:

         var oNextChild = oParent.openDataObject(

            oDataObjects[iChild].name

         );

         // Transfer its data to the XML collection:

         oSubmitData.nodes.append(

            oNextChild.xfa.data.nodes.item(0)

         );



         //close the attachment

         oNextChild.closeDoc();

      }



      // Submit the XML data collection to the server

      oParent.submitForm({

         cURL: "mailto:testemail@qoppa.com?subject=My Subject&body=Here is my form data.",

         cSubmitAs: "XML",

         oXML: oSubmitData

      });

   }

Если кто-то может предоставить некоторое представление о том, как я могу привести прикрепленныйдокументы через PDF-форму в электронное письмо, созданное this.submitform заявлением, я буду вечно благодарен!

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...