Donnez vie à vos documents numériques !
 

Introduire métadonnées d’un fichier XML dans un PDF avec Enfocus Switch

abracadabraPDF Forums PDF – Général Introduire métadonnées d’un fichier XML dans un PDF avec Enfocus Switch

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45145
    Maellyos
    Membre

    Bonjour,

    Cela fait maintenant quelques jours que je cherche comment introduire des métadonnées d’un fichier XML dans un fichier PDF à l’aide d’Enfocus Switch. Dans mes recherches j’ai entendu parler du logiciel PDF Constructor d’apago. Est-il indispensable d’avoir ce logiciel ou alors puis-je me débrouiller seulement avec Switch et les logiciels standards de prépresse. Je tiens à préciser que je suis débutant sur ce logiciel.  :doute:

    Merci d’avance de vos réponses !

    Cordialement

Affichage de 22 réponses de 1 à 22 (sur un total de 22)
  • Auteur
    Réponses
  • #58890
    Merlin
    Maître des clés

    Bonjour.

    :joker:

    #58891
    Maellyos
    Membre

    Bonjour Merlin,

    Ton smiley “Joker” veut dire que tu saute cette question ??? :P

    #58892
    Merlin
    Maître des clés

    Oui. Joker = joker.
    Je ne savais même pas qu’Enfocus Switch existait.

    Par-contre Cricri qui fréquente ce forum est un grand-gourou Enfocusien, il saura certainement te répondre.
    :Smiley01:

    #58893
    Maellyos
    Membre

    Ok ! Espérons que M. Cricri passe par ici car pour l’instant je n’ai toujours pas avancé  :mur:

    Edit: en recherchant dans les messages de Cri-cri, j’ai trouvé ceci : http://abracadabrapdf.net/forum/index.php/topic,2687.msg14711.html#msg14711 c’est ce que je cherche à faire je pense. Donc je vais tester les solutions dites dans ce post !

    #58894
    Cri-cri
    Participant

    Hello (et merci à Merlin de m’avoir pointé le topic  :Smiley01: )

    Ca dépend réellement ce que tu entends par introduire des métadonnées XML dans un PDF.
    Si tu parles d’injecter des informations venant d’un fichier XML dans le contenu XMP d’un PDF, tu as effectivement plusieurs solutions avec Switch.

    Pour ce qui est des métadonnées standards PDF (celles visibles dans les infos du fichier, aussi bien sur Reader que sur Acrobat)
    – un script Acrobat tout fait téléchargable ici : http://www.crossroads-world.com/en/Home/Get%20Flows/Enfocus/Add%20document%20info%20using%20a%20JavaScript%20in%20Acrobat
    – une solution externe type Command Line, telle CoherentPDF (cité dans le topic que tu mets en lien) ou équivalent

    Si tu veux injecter des métadonnées non-standards (visibles uniquement avec Acrobat – pas Reader – via le bouton “Métadonnées supplémentaires…”, c’est un peu plus compliqué et demande une version de Siwtch comprenant le module de scripting. Là, tu peux créer n’importe quelle arborescence XMP, selon les spécifications XMP, via du scriting Switch/Javascript.
    Pas très évident pour un débutant, car le scripting Switch n’est pas trivial, pas plus que la structuration XMP.

    J’ai écrit pas mal de scripts d’injection XMP donc n’hésite pas à poser des questions  :Smiley03:

    #58895
    Maellyos
    Membre

    Hello !

    Et bien merci pour la enfin les réponses ! Je vais tester ça dès que possible et vous tiens au jus de ma réussite (ou pas…) !

    #58896
    Maellyos
    Membre

    Hmmmm, ça me dérange, j’ai rajouté un travaux à problème au flux proposé par crossroads, et mes travaux termine dedans. Dans mes messages il me dit qu’il n’arrive pas à lire le fichier Javascript, j’ai réédité le lien pour être sûr que ce n’était pas une erreur de chemin, mais non, ça me l’envoie quand même dans travaux à problèmes…

    Voici un petit screen des messages d’erreur
    944929Capturede769cran20150507a768133959.png709336Capturede769cran20150507a768133959.png

    Edit: Est-ce que tout simplement je ne pourrais pas utiliser le module de base XML pickup en nommant le fichier XML et PDF de la même façon ??

    #58897
    Cri-cri
    Participant

    Non, le XMP Pickup va injecter les données du fichier XML en jeu de données attaché au fichier DANS Switch.
    Tu peux les utiliser dans le flux pour router des fichiers, renommer, et faire plein d’autres choses, mais une fois en dehors du flux, il n’y a plus rien.
    C’est pour cela que l’on fait de l’injection en XMP pour intégrer certaines infos DANS le fichier et faire qu’elles ont donc accessibles, même en dehors de Switch.

    Par contre, pour ton problème, as-tu vérité que tu autorises bien l’accès Javascript dans Acrobat ?
    Dans les préférences d’Acrobat, dans la section Javascript, il faut que tu coches le bouton “Autoriser les privilèges d’exécution Javascript d’éléments de menu”.
    Si bien sûr “Activer Acrobat Javascript” est coché, sinon, ça ne marchera pas non plus  :Smiley08:

    #58898
    Maellyos
    Membre

    Hello tout le monde !

    Aujourd’hui c’est mon anniversaire et comme cadeau Cri-cri m’a aidé à réussir ce que je voulais faire !! Merci ça fonctionne !!  :extra:

    Bonne journée à tous, la mienne commence bien :D

    #58899
    Cri-cri
    Participant

    Bon anniversaire !  :soleil:

    #58900
    Maellyos
    Membre

    Merci !  :bonjour:

    #58901
    Merlin
    Maître des clés

    Cri-cri a fait sa B.A. (Bon Anniversaire).

    :Smiley08:

    #58902
    Cri-cri
    Participant

    :Smiley08:

    #58903
    Maellyos
    Membre

    Du coup, maintenant pour injecter des données venant d’un fichier XML, (car avec le script acrobat, les metadonnées sont fixes) il faut donc forcément passer par un script XMP ?

    #58904
    Cri-cri
    Participant

    En fait, cel dépend de ce que tu veux faire.

    Dans tous les cas, tu utilises d’abord le XML Pickup pour insérer en jeu de données le contenu de ton XML dans ton fichier PDF.

    Ensuite,

    Cas 1 : tu souhaites utiliser les champs standards pour injecter tes données (par exemple, tu mets ça dans objet ou keywords, etc.), même si les données concernent autre chose (il suffit de préciser à tes interlocuteurs où trouver quoi), et là, tu peux parfaitement utiliser le script que tu as déjà utilisé – tu pointes chaque argument vers la variable (incluant métadonnées) concernée

    Cas 2 : tu souhaites créer une arborescence spécifique pour tes données XMP, et là, je pense que ça va être coton vu que tu dis être débutant.
    Il faut créer un script Switch (donc il faut également que ton Switch possède le module Scripting) qui injecte les données dans la bonne arborescence XMP.
    Pour ça, tu dois maîtriser Javascript, les variables Switch, la structuration XMP et l’injection.
    Ca dépasse largement le cas de l’aide au travers de quelques posts dans un forum.
    Soit tu sais te débrouiller, soit tu me contactes par MP ou email (je pense que tu as mes coordonnées si je ne me trompes  :Smiley03: ) et on en parle offline.

    #58905
    Maellyos
    Membre

    Hello !

    Le cas n°1 est amplement suffisant :) J’ai réussi à me débrouiller et ça a l’air de fonctionner :D

    #58906
    Cri-cri
    Participant

    Oui, en général, ça fonctionne très bien comme ça. En plus, cela permet d’avoir accès à ces infos aussi bien avec Reader que Acrobat.

    Le cas 2 est plus dans le cas d’une automatisation basée sur des informations XMP (donc plus pour des machines que des utilisateurs, d’autant plus que c’est moins facile à lire).

    Content que tu aies pu atteindre ton objectif  :bravo:

    #58907
    Merlin
    Maître des clés

    Cas 1 : tu souhaites utiliser les champs standards

    cela permet d’avoir accès à ces infos aussi bien avec Reader que Acrobat.

    On peut aussi utiliser les “Propriétés personnalisées”, également accessibles dans Reader.

    #58908
    Cri-cri
    Participant

    Effectivement, bonne idée. Je n’ai jamais essayé.

    L’injection se fait de la même manière qu’avec les métadonnées de base ?
    C’est accessible en javascript ?

    #58909
    Merlin
    Maître des clés

    L’injection se fait de la même manière qu’avec les métadonnées de base ?

    Je n’ai pas tout suivi ci-dessus donc je ne peux pas vraiment répondre. Mais a priori oui.

    C’est accessible en javascript ?

    Oui, en lecture-écriture.

    #58910
    Cri-cri
    Participant

    OK, cool, je vais jeter un coup d’oeil, car ça peut être pas mal  :Smiley01:

    Pour l’automatisation, je reste sur l’XMP perso car c’est l’idéal pour piloter des process externes, mais dans u but de stockage d’infos “lisibles par être humain”, c’est plutôt pas mal.

    Merci !

    #58911
    Merlin
    Maître des clés

    J’avais fait ce script pour je ne sais plus qui pour intégrer les zones graphiques en métadonnées perso via une Action :

    Code:
    var mbox = this.getPageBox(“Media”);
    var Mzeroz = Math.round(mbox[0] * 0.3527);
    var Munz = Math.round(mbox[1] * 0.3527);
    var Mdeuz = Math.round(mbox[2] * 0.3527);
    var Mtroiz = Math.round(mbox[3] * 0.3527);

    var cbox = this.getPageBox(“Crop”);
    var Czeroz = Math.round(cbox[0] * 0.3527);
    var Cunz = Math.round(cbox[1] * 0.3527);
    var Cdeuz = Math.round(cbox[2] * 0.3527);
    var Ctroiz = Math.round(cbox[3] * 0.3527);

    var tbox = this.getPageBox(“Trim”);
    var Tzeroz = Math.round(tbox[0] * 0.3527);
    var Tunz = Math.round(tbox[1] * 0.3527);
    var Tdeuz = Math.round(tbox[2] * 0.3527);
    var Ttroiz = Math.round(tbox[3] * 0.3527);

    var bbox = this.getPageBox(“Bleed”);
    var Bzeroz = Math.round(bbox[0] * 0.3527);
    var Bunz = Math.round(bbox[1] * 0.3527);
    var Bdeuz = Math.round(bbox[2] * 0.3527);
    var Btroiz = Math.round(bbox[3] * 0.3527);

    var abox = this.getPageBox(“Art”);
    var Azeroz = Math.round(abox[0] * 0.3527);
    var Aunz = Math.round(abox[1] * 0.3527);
    var Adeuz = Math.round(abox[2] * 0.3527);
    var Atroiz = Math.round(abox[3] * 0.3527);

    if (app.language == “FRA”)
    {
    this.info.Zone_de_media_en_mm = Mzeroz + “, ” + Mdeuz + “, ” + Munz + “, ” + Mtroiz;
    this.info.Zone_de_recadrage_en_mm = Czeroz + “, ” + Cdeuz + “, ” + Cunz + “, ” + Ctroiz;
    this.info.Zone_de_rognage_en_mm = Tzeroz + “, ” + Tdeuz + “, ” + Tunz + “, ” + Ttroiz;
    this.info.Zone_de_fond_perdu_en_mm = Bzeroz + “, ” + Bdeuz + “, ” + Bunz + “, ” + Btroiz;
    this.info.Zone_graphique_en_mm = Azeroz + “, ” + Adeuz + “, ” + Aunz + “, ” + Atroiz;
    }

    else
    {
    this.info.MediaBox_in_mm = Mzeroz + “, ” + Mdeuz + “, ” + Munz + “, ” + Mtroiz;
    this.info.CropBox_in_mm = Czeroz + “, ” + Cdeuz + “, ” + Cunz + “, ” + Ctroiz;
    this.info.TrimBox_in_mm = Tzeroz + “, ” + Tdeuz + “, ” + Tunz + “, ” + Ttroiz;
    this.info.BleedBox_in_mm = Bzeroz + “, ” + Bdeuz + “, ” + Bunz + “, ” + Btroiz;
    this.info.ArtBox_in_mm = Azeroz + “, ” + Adeuz + “, ” + Aunz + “, ” + Atroiz;
    }

    La multiplication par 0.3527 c’est pour convertir les pouces en mm.

    :Smiley15:

Affichage de 22 réponses de 1 à 22 (sur un total de 22)
  • Vous devez être connecté pour répondre à ce sujet.