Pièce jointe à un PDF (supprimer)  (Lu 3839 fois) Partager ce sujet Imprimer

1 B


carrerond  28 novembre 2016 : 12:02

Bonjour à tous,

J'utilise comme ressource ce java : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/importer-programmatiquement-une-piece-jointe-dans-un-pdf/

J'ai un PDF interactif dans lequel mon client à le choix, via une puce, de choisir de joindre une pièce jointe ou d'écrire un texte dans un champ qui apparait lorsque ce choix a été activé (puce active). Mais il peut revenir sur ses choix et si par exemple il choisit de joindre une pièce, j'ai le petit picto trombone qui apparait, et si après il choisit la seconde option (de mettre du texte), ce picto reste. Quelqu'un aurait il une astuce pour faire en sorte que ce picto disparaisse ainsi que la pièce jointe ?

Je vous ai mis en pièce jointe une copie d'écran ; mon PDF étant trop lourd.

Merci pour votre aide.

IP archivée


bebarth  28 novembre 2016 : 13:59

bonjour,
Je vois déjà la remarque de Merlin :
==> http://abracadabrapdf.net/forum/index.php/topic,2160.msg10980.html#msg10980  :Smiley01:

par contre, la pièce jointe n'a pas dû fonctionner !!!
@+
 :bonjour:

IP archivée


Merlin  28 novembre 2016 : 14:28

Bonjour et bienvenue.


Pour supprimer icônes et leurs pièces jointes il faut utiliser ce script :

var annotations = this.getAnnots({nPage: this.pageNum});
for (var i = 0; i < annotations.length; i++) {annotations[i].destroy();}

Attention ce script est brutal, dans le sens où il détruit irréversiblement et sans avertissement tous les commentaires présents sur la page active et toutes les pièces jointes qui y sont associées.
 :Smiley15:


Citer
Je vois déjà la remarque de Merlin
Oui effectivement, tu me mâches le travail.  :Smiley01:

J'ajouterais juste ceci pour envoyer une pièce jointe volumineuse : Acrobat > menu Fichier > Envoyer le fichier > Envoyer et effectuer le suivi > Créer un lien anonyme (option par défaut)
Ou : http://abracadabrapdf.net/forum/index.php/topic,2974.0.html

IP archivée


Merlin  28 novembre 2016 : 15:22

Voilà un script un peu moins brutal, qui ne détruit irréversiblement et sans avertissement que les pièces jointes, et leurs icônes associées, importées sur la page active, donc en laissant intacts tous les autres commentaires.

var annotations = this.getAnnots({nPage: this.pageNum});
for (var i = 0; i < annotations.length; i++) {
if (annotations[i].type == "FileAttachment") {annotations[i].destroy();}
}

Dans tous les cas ces scripts n'ont aucun impact sur les pièces jointes "normales", celles qui sont importées directement dans le document via le panneau de navigation "Pièces jointes" et qui ne sont pas attachées à une page en particulier.
Mais ça n'a aucune importance parce-que même en présence d'un PDF "Reader-Extended" Acrobat Reader ne peut pas importer de pièces jointes "normales".

IP archivée


carrerond  29 novembre 2016 : 17:29

Merci pour cette aide précieuse qui me sauve la vie !

IP archivée


daninet  18 septembre 2019 : 17:02

Salve,
Bonsoir,
j'ai trouvé le script dans le forum: destroy

est-il possible de l'améliorer?
avec Un avis d'alerte.
"Attention, vous supprimez une pièce jointe."
Ou bien l'idéal serait de… sauvegarder la pièce jointe et la supprimer.
Je vous remercie beaucoup.

Script:
var annotations = this.getAnnots({nPage: this.pageNum});
for (var i = 0; i < annotations.length; i++) {
if (annotations.type == "FileAttachment") {annotations.destroy();}
}

Je vous remercie beaucoup  :bonjour:

IP archivée


bebarth  18 septembre 2019 : 18:26

bonjour,
Moi j'écrirais ceci :
var annotations = this.getAnnots({nPage: this.pageNum});
for (var i = 0; i < annotations.length; i++) {
    if (annotations[i].type == "FileAttachment") {
        var nButton = app.alert({
        cMsg: "Attention, vous allez supprimer la pièce jointe : "+annotations[i].name+" !\nVoulez-vous l'enregistrer avant ?",
        cTitle: "Suppression d'une pièce jointe",
        nIcon: 2,
        nType: 2
        });
        if (nButton!=4) {
            annotations[i].destroy();
        } else {
            break;
        }
    }
}
...avec en option le nom de la pièce jointe qui ne correspond pas au nom réel.
Et l'enregistrement de la pièce jointe se fera manuellement car je crois qu'on ne peut pas le faire via JavaScript.
@+
 :bonjour:

IP archivée


daninet  18 septembre 2019 : 18:59

Si et No sont un peu trompeurs .....
Mais après avoir réalisé que Oui .. est en train d’enregistrer.
et NO est supprimer ....

Ça fonctionne parfaitement. Merci  :bravo: :extra:

IP archivée


Merlin  18 septembre 2019 : 19:27

 :bonjour:

IP archivée


DavidFeder  23 septembre 2020 : 12:29

Bonjour,

Est-il possible de supprimer seulement certaines pièces jointes d'une page? (pas toutes celles de la page)Dans mon formulaire, j'ai plusieurs boutons "ajouter une pièce jointe", dont les noms apparaissent dans des champs de texte respectifs.
Je voudrais offrir la possibilité de supprimer une pièce jointe (ou toutes celles dont le nom est ajouté à un même champs de texte), mais pas toutes celles de la page.

IP archivée


bebarth  24 septembre 2020 : 15:55

bonjour,
Voici ma proposition.
Ce script ne supprime uniquement que les pièces jointes attachées à la page active. On peut l'adapter pour qu'il fonctionne sur toutes les pages s'il y en a plusieurs !
Dans cet exemple, le fichier "Pie?ce Jointe #5.pdf" est attaché au document (il n'a pas d'icône sur la page) et n'est donc pas supprimé.
@+
 :bonjour:

IP archivée


Merlin  24 septembre 2020 : 19:02

 :bravo:

IP archivée


DavidFeder  25 septembre 2020 : 09:12

Bonjour,

Merci pour ta réponse.
Du coup on devrait pouvoir supprimer les pièces jointes d'une page spécifique, sans pour autant qu'elle existe réellement?
Et à l'attachment, est-il possible d'ajouter une pièce jointe à une autre page que celle depuis laquelle l'utilisateur finale est? C'est à dire celle où on a mis le bouton "ajouter une pièce jointe" ?

IP archivée


bebarth  25 septembre 2020 : 10:21

bonjour,
Du coup on devrait pouvoir supprimer les pièces jointes d'une page spécifique, sans pour autant qu'elle existe réellement?
Ça, je n'ai pas compris !!! Comment veux-tu supprimer une pièce jointe à une page qui n'existe pas ???

Et à l'attachment, est-il possible d'ajouter une pièce jointe à une autre page que celle depuis laquelle l'utilisateur finale est? C'est à dire celle où on a mis le bouton "ajouter une pièce jointe" ?
Avec "addAnnot" tu spécifies la page sur laquelle tu veux ajouter la pièce jointe.
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_addAnnotbc-1&rhtocid=_6_1_8_23_1_0
@+
 :bonjour:

IP archivée