Donnez vie à vos documents numériques !
 

Ouvrir un fichier pdf à la même page que celui ouvert (dans une autre langue)

abracadabraPDF Forums PDF – Général Ouvrir un fichier pdf à la même page que celui ouvert (dans une autre langue)

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43596
    bebarth
    Maître des clés

    Bonjour,
    j’utilise acrobat depuis plusieurs années, mais je suis débutant en javascript.

    j’ai une catalogue (pdf) de 1500 pages disponible en 3 langues et je voudrais faire un bouton (par page) qui permette d’ouvrir à partir d’une langue, un autre fichier pdf de ce catalogue dans une autre langue, à la même page que celui d’origine.
    J’ai fait un petit script, mais j’arrive toujours à la première page du second document:

    var pgnum = this.pageNum;
    var otherDoc = app.openDoc(“ENGLISH.pdf”, this);
    otherDoc.pageNum=pgnum;

    j’ai fait plein d’autres essais, mais sans succès !

    y-a-t’il une solution ?

    Merci d’avance.

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

    Est-ce que ce sont 1500 pages identiques ? Et avec quel logiciel sont-elles composées ?

    Si la 1re réponse est oui et en fonction de la 2e il serait possible d’envisager une navigation par calques. C’est-à-dire de créer un PDF multicalques (utilisable avec Reader ou Acrobat version 6 ou ultérieure), chaque calque contenant une langue différente il devient très facile de naviguer entre les versions linguistiques (puisque sans changement de page).

    Autres avantages : gestion des mises à jour facilitées, pas d’utilisation de JavaScript (qui est parfois désactivé).

    Je vais regarder le JavaScript utilisé de plus près, dès fois que les réponses aux questions ci-dessus le rendent indispensable…

    ;)

    #49434
    bebarth
    Maître des clés

    ce sont 3 catalogues strictement identiques, mais en 3 langues différentes (Anglais, Français et Allemand).
    Ils ont été créés sous QuarkXPress 6 (mac).

    Le but est de faire un CD-ROM contant ces 3 versions. Les années précédentes, je faisais un bouton au début de chaque chapitre qui renvoie un une page bien définie (il y avait une vingtaine de boutons donc pas trop difficile à faire) mais cette année je voudrais faire un bouton sur toutes les pages (pour 1500 pages c’est plus long…).

    Merci!

    #49435
    Merlin
    Maître des clés

    Je pense que le script est bon sur le fond mais il faudrait que tu fasse appel à une variable globale, et non pas à une variable simple qui n’est pas censée passer d’un document à l’autre.

    Je te conseille de télécharger ce doc, c’est la bible du JavaScript sur Acrobat :

    –> http://partners.adobe.com/public/developer/en/acrobat/sdk/AcroJS.pdf

    ;)

    #49436
    bebarth
    Maître des clés

    Merci Merlin,
    je pense que j’ai compris et te dirai demain si ça fonctionne.
    j’avais déjà ce doc, et c’est grace à lui que j’ai pu écrire mon script.
    @+ dans une autre question.
    merci encore
    😮

    #49437
    Merlin
    Maître des clés

    je pense que j’ai compris et te dirai demain si ça fonctionne.

    Nous sommes tous curieux…

    ;)

    #49438
    bebarth
    Maître des clés

    Pour l’instant je ne m’en sort pas avec les variables globales!
    J’ai même essayé l’exemple donné page 443 du document Acrobat JavaScript Scripting Reference, et ça ne fonctionne pas!!! j’ai pourtant juste fais copier/coller…
    si quelqu’un a une idée ou s’il sait utiliser les variables globales.
    Merci
    ???

    #49439
    Merlin
    Maître des clés

    Il faudrait que tu précises quel est le script de la page 443, parce qu’apparemment on n’utilise pas la même version de ce doc !

    :)

    #49440
    bebarth
    Maître des clés

    Bonjour Merlin,
    la doc que j’ai est du 29, septembre 2005 (Adobe Acrobat 7.0.5)

    voici le script, peeux-tu voir si ça fonctionne de ton côté :

    Example
    In this example, there are two files, setRadius.pdf and calcVolume.pdf, open in Acrobat or Adobe Reader:
    ?setRadius.pdf has a single button with the code
    global.radius = 2;
    ?calcVolume.pdf has a document-level JavaScript named subscribe:
    // In the Advanced > JavaScripts > Document JavaScripts
    global.subscribe(“radius”, RadiusChanged);
    function RadiusChanged(x)// callback function
    {
    var V = (4/3) * Math.PI * Math.pow(x,3);
    this.getField(“MyVolume”).value = V;// put value in text field
    }
    ?With both files open, clicking on the button in setRadius.pdf immediately gives an update in the text field “MyVolume” in calcVolume.pdf of 33.51032 (as determined by global.radius = 2.

    Merci
    ???

    #49441
    Merlin
    Maître des clés

    C’est bien celui que j’ai vu mais je croyais que tu avais trouvé un exemple plus précis.

    Si tu peux me communiquer le script que tu en tiré (celui que tu as essayé) ça me fera gagner du temps, mais malheureusement je n’aurais pas vraiment de temps a y consacrer avant jeudi prochain…

    ;)

    #49442
    bebarth
    Maître des clés

    Bonjour Merlin,
    je t’enverrai le script dès lundi, et ferai d’autre essai en attendant jeudi…
    comme je ne suis pas un expert en javascript, pourrais-tu m’indiquer ou je pourrais trouver un documents avec toutes les fonctions avec leurs attributs.
    merci d’avance
    ???

    #49443
    Merlin
    Maître des clés
    #49444
    bebarth
    Maître des clés

    Merci, je vais y jter un oeil ce weekend!
    bon weekend.
    :-*

    #49445
    bebarth
    Maître des clés

    Bonjour Merlin,
    Voici le script que j’ai écris :

    global.pgnm = this.pageNum;
    getField(“monChamp”).value=global.pgnm;
    var otherDoc = app.openDoc(“ENGLISH.pdf”, this);
    otherDoc.pageNum = global.pgnm;
    otherDoc.getField(“monChamp”).value=global.pgnm;

    comme tu peux le voir, j’ai rappelé 2 fois la variable globale (une fois sur chaque document). Elle est bien conservée dans le document d’origine, mais elle est perdue dans le document ouvert (ENGLISH.pdf)…

    je continue à chercher mais je n’ai pas beaucoup de nouvelles idée aujourd’hui.

    Merci & @+
    😮

    #49446
    Merlin
    Maître des clés

    Je crois que j’ai idée sur ce qui ne va pas, je te tiens au courant dès que j’ai un peu de temps…
    ;)

    #49447
    bebarth
    Maître des clés

    Merci !!!
    ;)

    #49448
    Merlin
    Maître des clés
    Code:
    global.pgnm = this.pageNum;
    this.getField(“monChamp”).value=global.pgnm;
    var otherDoc = app.openDoc(“ENGLISH.pdf”, this);
    otherDoc.pageNum = global.pgnm;
    otherDoc.getField(“monChamp”).value=global.pgnm;

    Bonne nouvelle ! Ce script fonctionne très bien, aussi bien pour l’ouverture sur la bonne page que pour le remplissage du champ témoin. En fait c’est ton script auquel j’ai rajouté “this.” au début de la 2e ligne.

    Cependant mon idée était bonne et ce n’est pas seulement ça qui fait que ça fonctionne ou non, en fait il faut ajouter une ligne de script au doc cible pour déverrouiller la propriété Disclosed qui par défaut empêche tout transfert d’info d’un doc à l’autre.
    Cette propriété à un fonctionnement spécial car, le mieux étant l’ennemi du bien, Adobe a commis une grosse bourde lors de son intégration dans la version 5.0.5 d’Acrobat.
    Je te conseille d’examiner la doc (AcroJS.pdf) pour en savoir plus.

    Donc il te faut placer en script de document (menu Options avancées > Traitement du doc > Scripts JavaScripts) de chaque document cible le script suivant :

    Code:
    this.disclosed = true;

    On peux aussi placer ce script en “script d’ouverture de page” quand on sait à l’avance sur quelle page le doc doit s’ouvrir mais ici ce n’est pas le cas, justement.

    ;)

    #49449
    bebarth
    Maître des clés

    Bravo et merci Merlin!
    Je n’aurais jamais trouvé ça tout seul. Ça marche parfaitement.
    :D

    #49450
    Merlin
    Maître des clés

    8) ;)

    #49451

    Bonjour,
    Il existe une autre solution que celle qui passe par les valeurs globale c’est l’expression suivante :
    depuis le catalogue Français pour ouvrir l’Anglais
    var d = app.openDoc(“CatalogueAnglais.pdf”,this); closeDoc(true);d.pageNum = this.pageNum;

    On envoie le numéro de page à la fin de l’expression.

    #49452
    bebarth
    Maître des clés

    Bonjour,
    Merci pour cette autre solution, mais celle-ci necessite apparemment de fermer le premier document, alors que celle de Merlin permet de naviguer entre les deux.
    C’est quand même bien de la savoir.
    ::)

    #49453
    Merlin
    Maître des clés

    Un petit script à l’ouverture (et à la fermeture pour rétablir) permet de prendre le contrôle de certaines préférences d’affichage, dont le choix d’ouvrir le lien dans une même fenêtre ou une autre fenêtre.

    Dans le 1er cas l’utilisateur revient sur le doc de départ via le bouton retour (vue précédente).

    Pour le contrôle des Préférences d’affichage voir les fichiers de démo des diaporamas (Aubade & Pins de Salzmann), fonctions qui sont documentées dans les AbracadabraScripts :

    –> http://abracadabrapdf.net/articles.php?lng=fr&pg=133

    –> http://abracadabrapdf.net/articles.php?lng=fr&pg=124

    :)

    #49454

    Juste une petite précision, j’utilise “closeDoc(true);” uniquement pour éviter que l’utilisateur de mes fichiers PDF n’en ai trop d’ouvert sur son poste, ceux-ci étant essentiellement constitués de plans et sont de ce fait assez gros (de 500k à 28 Mb!).  ;)
    Dans mes fonctions de navigation j’utilise aussi la valeur “this.viewState”. Celle-ci est un objet regroupant entre autre : le n° de la page, le % de zoom ainsi que la position de la fenêtre.
    En transférant cette valeur à un autre document ayant la même structure, on peut faire apparaître à l’utilisateur la même portion de page, ce qui dans le problème posé pour des documents identiques dans différentes langues pourrait être intéressant.
    8)

    #49455
    bebarth
    Maître des clés

    Super “this.viewState” !!!
    Chacun de mes catalogue pèse environ 90 Mo. Je me demande encore si je dois ne garder qu’un seul fichier ouvert ou si je les conserve tous ouverts.
    Si je ne garde qu’un seul fichier ouvert, quel est l’avantage d’ouvrir dans la même fenêtre???
    Merci
    ::)

    #49456

    Je vais faire la réponse du berger à la bergère : pourquoi ouvrir dans des fenêtres différentes ?
    Dans beaucoup d’entreprises, la capacité mémoire des machines mises à disposition des employés est du genre config de base, c’est à dire stricte minimum pour que ça tourne sans problème majeur. Le fait de laisser des documents aussi gros en mémoire peut aller jusqu’à la “plantée” du système, chose que je ne veux pas. ;)
    Ce qui suit n’a rien à voir avec la question de base : />:(” title=”>:(” class=”bbcode_smiley” /><br />Les responsables informatiques pensent toujours que ce qu’ils font c’est ce qu’il y a de meilleur. Je suis effaré de constater que le simple fait de demander une mise à jour du Reader, qui jusqu’à preuve du contraire, est gratuit, pose problème auprès des informatiens (ou de société de services qui s’occupe de l’informatique d’un client). Certaines fonctions java ne sont pas actives dans la version 7.0.3, mais elles le sont dans les versions suivantes du 7, je rencontre souvent des versions 7.0.0, où c’est tout le java qui n’est pas enclenché. Ne parlons pas du 8, c’est pire, ils y en a qui ne savent même pas que cette version existe.<br />Bonne journée  <img decoding=

    #49457
    bebarth
    Maître des clés

    sur le cd, il y aura acrobat 8 executable ! c’est ce que je faisais less autres années, plus des liens pour télécharger les différentes versions selon la plateforme.
    😮

    #49458

    :D Bien, si ça marche pour vous, dans les grandes boîtes, les machines sont bloquées  />:(” title=”>:(” class=”bbcode_smiley” /></p>

		
	</div><!-- .bbp-reply-content -->
</div><!-- .reply -->

			
				
<div id=

    #49459
    Merlin
    Maître des clés

    Moi je fais du tout compatible version 5 et +, avec un minimum de JavaScripts, comme ça je ne suis pas embêté et ça fonctionne à peu près partout…
    (sauf besoin ou spécification particulière, par exemple le multimédia “sérieux” réclame du version 6 et +).

    :)

    #49460
    bebarth
    Maître des clés

    Dans ma boite, les pc sont aussi bloqués, et pour les mises à jours d’acrobat, il suffit de demander. Moi je travaille sur mac, aussi comme personne n’y connait rien, je demande (pour l’achat) et je me débrouille tout seul. C’est le deal avec le service informatique (et je préfère comme ça).
    Comme Acrobat s’execute automatiquement avec le CD, les catalogues sont lancés automatiquement avec la version gravée sur le CD (avec autorisation d’adobe bien sur).
    Comment peut-on savoir si tout est compatible version 6 et + ????
    y-a-t-il des javascripts à éviter ???
    Merci
    ???

    #49461
    Merlin
    Maître des clés

    Dans AcroJS.pdf la compatibilité de toutes les fonctions est listée dans le cadre qui est à gauche du nom, sinon il faut tester…

    C’est pour ça que je garde des versions 5 dans un coin.

      ;)

    #49462
    bebarth
    Maître des clés

    le problème, c’est que je ne pense plus avoir de machine ou tourne la version 5 (OS9 je crois?)
    />:(” title=”>:(” class=”bbcode_smiley” /></p>

		
	</div><!-- .bbp-reply-content -->
</div><!-- .reply -->

			
				
<div id=

    #49463
    Merlin
    Maître des clés

    La version 5 fonctionne sur Mac OS X.4, sur Classic, et sur Mac OS 9.1.

    C’est la seule version d’Acrobat et de Reader qui fonctionne sur les deux systèmes Mac, je crois qu’elle fonctionne aussi sur Windows XP mais avec Windows il est fortement déconseillé par Adobe d’avoir plusieurs versions sur un même système. Il faut des machines virtuelles.

    :)

    #49464
    bebarth
    Maître des clés

    Je reviens sur mon problème d’ouverture de fichiers à une même page, car alors je pensais que tout fonctionnait bien, en fait tout fonctionne comme je le désir avec Acrobat, mais pas avec le reader.
    Si j’ouvre le second fichier dans une autre fenêtre, cela fonctionne, mais si je l’ouvre dans la même fenêtre, j’atterris à la première page du document. Après réflexion, j’aurais préféré ouvrir dans la même fenêtre, cela permet de pouvoir utiliser les boutons vue précédente et vue suivante.
    J’ai essayé de placer un app.openInPlace en script de document, mais rien à faire, le second fichier s’ouvre dans une autre fenêtre.
    Le Reader ne fonctionne-t-il pas comme Acrobat???
    merci
    :???:

    #49465
    Merlin
    Maître des clés

    J’ai essayé de placer un app.openInPlace en script de document, mais rien à faire,

    As tu vérifié si cela fait partie des Trusted funtions ?

    Le Reader ne fonctionne-t-il pas comme Acrobat???

    Quelle version de Reader ?

    :contentdance: :contentdance: :contentdance:
    (j’en profite pour saluer le retour de mon smiley préféré  :extra:  )

    #49466
    bebarth
    Maître des clés

    dans la doc js_api_reference j’ai trouvé :

    The following methods, if run from a document-level script, no longer affect the user preferences:

    ?app.openInPlace
    These methods still affect user preferences if run from an application-level script.

    j’ai donc essayé de placer app.openInPlace dans un fichier .js mais sans résultat.
    du coup, j’ai fait un mixte de scripts que proposait cdiautomation :

    var d = app.openDoc(“FRANCAIS.pdf”,this);
    global.vue = this.viewState;
    closeDoc(true);
    d.viewState = global.vue;

    et cela fonctionne et me convient. Le seul “inconvénient” que j’ai remarqué, c’est que si je navigue dans un document, puis dans un autre, l’historique reste sur le dernier document ouvert (bouton vue précédente) et je revient donc à des pages que j’avais ouvertes dans une autre langue (j’espère être clair).

    Ce problème de changement le fichier à une page bien défini étant simple (pour une seule page pas pour 1400) avec l’action : définir une vue de page proposée par Adobe, je me demandais s’il était possible de récupérer ces scripts prédéfinis (s’ils sont en javascript)???

    :mur:

    #49467
    Merlin
    Maître des clés

    Je pense qu’il te faut utiliser app.openInPlace exactement de la même façon que sont utilisés les paramètres des Préfs Plein écran sur la page 1 d’AbracadabraScripts.

    C’est-à-dire avec les variables globales, et éventuel rétablissement des préfs de l’utilisateur à la fermeture du doc.

    :idee: ;)

    #49468
    bebarth
    Maître des clés

    c’est ce que je pense avoir fait !!!
    :mur:

    #49469
    Merlin
    Maître des clés

    En effet…
    :doute:

    Mais c’est typiquement le genre de fonctions avec lesquelles Adobe fait ce qu’il veut et qui changent de comportement sans prévenir, avec aussi parfois des différences entre Acrobat et Reader (ou même entre Reader Mac et Reader Windows, c’est du vécu).

    Comme trop souvent, le fait de ne pas avoir avoir suffisamment étudié la globalité du problème en amont fait que maintenant tu dois te faire ch..r à trouver des solutions de type rustines alors qu’il aurait été plus simple de faire autrement. En utilisant les calques, par exemple…
    ;)

    #49470
    Merlin
    Maître des clés

    je me demandais s’il était possible de récupérer ces scripts prédéfinis (s’ils sont en javascript)???

    Non, ce sont des appels directs au code de l’application.
    :indecis: :(

    #49471
    bebarth
    Maître des clés

    Je ne pense pas que les calques soient possibles pour moi, car les différentes versions sont faites simultanément en France et aux US via une base de données et un logiciel STEP (http://ebusiness.info/guide.php3?societe=10561) qui permet de remonter ces données dans XPress. Il y a donc 1 fichier par langue.
    1 fichier pèse déja environ 60 Mo (avec une résolution d’image à 72 dpi), alors les 3 en un seul fichier j’imagine (même si la quadri serai sur un calque et les différentes langues sur les autres).
    :geek:

    #49472
    Merlin
    Maître des clés

    Si tu as les 3 PDF (et s’ils sont quasiment identiques), tu peux créer un PDF multicalques avec InDesign.

    :)

    #49473
    alex
    Participant

    Je pense qu’il faut autoriser la manipulation (l’ouverture) du fichier cible par le script du fichier père. Pour cela on aura  recours à la propriété disclosed du document cible. Cela évite de passer un script de haut niveau.

    #49474
    bebarth
    Maître des clés

    Alors que tout ce passait bien sur le ce de l’année dernière, cette année j’ai un problème avec exactement le même script.
    Le bouton fonctionne bien uniquement la première fois (EN->FR ou FR->EN) puis le bouton ouvre le fichier dans une autre fenêtre et à la première page (perte des variables ????).
    D’où pourrait venir ce problème, sachant que je n’ai pas compris le dernier post d’Alex…
    Merci !
    :mur:

    #49475
    Merlin
    Maître des clés

    Je pense que tu dois faire partie des victimes du passage MDI vers SDI :
    http://www.abracadabrapdf.net/forum/index.php?topic=1109

    :Euuuh:

    #49476
    bebarth
    Maître des clés

    J’ai lu vite fait et pensé qu’il suffisait de supprimer openInPlace, mais apparemment ça ne suffit pas. La variable de page est perdue.
    :Euuuh:

    #49477
    Merlin
    Maître des clés

    Ben euh…

    Peut on voir ce script ?
    Parce que j’avoue que depuis le temps, je l’ai un peu perdu de vue.
    :joker:

    #49478
    bebarth
    Maître des clés

    en script de bouton, c’est :

    var d = app.openDoc(“01-Make_F.pdf”,this);
    global.vue = this.viewState;
    closeDoc(true);
    d.viewState = global.vue;

    en script d’ouverture il y avait :

    app.openInPlace = true;

    que j’avais rajouter pour que les vues précédentes fonctionnent sur plusieurs documents. Mais apparemment cela ne sert plus à rien puisque cela ne fonctionne plus.

    Ne pourrait-on pas fermer la fenêtre du fichier original une fois que l’on est à la bonne page du fichier cible ?

    :Euuuh:

    #49479
    Merlin
    Maître des clés

    J’ai trouvé ça dans la doc :

    closeDoc :

    Closes the document.
    For Adobe Reader 5.1 or later, the method is always allowed:
    ?If the document was changed and no Document Save Rights S are available, the document is closed without any warnings and changes are lost.
    ?If Document Save Rights are available, the user has the option of saving the changed file.
    It is important to use this method carefully, because it is an abrupt change in the document state that can affect any JavaScript executing after the close. Triggering this method from a Page event or Document event could cause the application to behave strangely.
    In versions of Acrobat earlier than 7.0, a document that closes itself by executing this.closeDoc terminates any script that follows it. In Acrobat 7.0, the script is allowed to continue and to terminate naturally. However, if the Document Object of the closed document is referenced, an exception will be thrown.

    Tu devrais essayer de mettre le closeDoc après le viewState

    Quand à app.openInPlace, tu peux effectivement l’oublier.

    :idee:

    #49480
    bebarth
    Maître des clés

    Je vais essayer plus tard, mais là je profite que j’ai accès au site :
    – Si dans un même script je ferme le doc après avoir été sur un autre doc, à quel doc s’applique “closeDoc(true);”????
    – Ne faut-il pas fermer le doc origine en scrip d’ouverture du doc cible???
    Merci
    :doute:

    #49481
    bebarth
    Maître des clés

    ça ne fonctionne pas (sur pc) en inversant les 2 instructions. Le doc source reste ouvert en second plan et le doc cible est ouvert en première page.
    Sur Mac ça marche bien ! Ce que je ne comprend pas dans le doc de jeff moran c’est qu’il parle de parité entre windows et Mac os (pas osx) alors que le mdi fonctionne apparemment avec osx. Et puis le coup des écrans pas chers pour laisser tomber le mdi me laisse septique!!!
    Je continue mes recherches…
    :doute:

    #49482
    bebarth
    Maître des clés

    Début de solution qui fonctionne :
    J’ai enlevé le closeDoc(true) en fin de script de bouton et j’ai rajouté var myDoc = this.info.Title
    Ça fonctionne, je retombe bien à la bonne page.
    Donc en script d’ouverture j’ai ajouté myDoc.closeDoc(true) mais le doc source ne se ferme pas !
    :doute:

    #49483
    Merlin
    Maître des clés

    Quand à app.openInPlace, tu peux effectivement l’oublier.

    Pardon, j’ai confondu : cette option est toujours valable dans la version 9…

    :Ooops:  :siffle:

    #49484
    Merlin
    Maître des clés

    ça ne fonctionne pas (sur pc) en inversant les 2 instructions. Le doc source reste ouvert en second plan et le doc cible est ouvert en première page.

    Est-ce que c’est vraiment grave ?

    Sur Mac ça marche bien !

    Je pense à un problème de règles de sécurité…

    Ce que je ne comprend pas dans le doc de jeff moran c’est qu’il parle de parité entre windows et Mac os (pas osx)

    Si, il n’est question que d’OSX.
    La parité concerne le développement de l’application et les fonctions proposées à l’utilisateur.

    :soleil:

    #49485
    Merlin
    Maître des clés

    Donc en script d’ouverture j’ai ajouté myDoc.closeDoc(true) mais le doc source ne se ferme pas !

    Ne serait-ce pas plutôt : this.closeDoc ?
    Peut-on passer le nom du doc à fermer en argument ? (entre les parenthèses)

    :idee:

    #49486
    bebarth
    Maître des clés

    J’ai essayé en mettant this.closeDoc en script d’ouverture, mais… ça me referme le doc immédiatement !!!
    j’ai fait pas mal d’essais et en suis arrivé à ce script (uniquement sur le bouton) :

    var d = app.openDoc(“01-Make_F.pdf”,this);
    global.vue = this.viewState;
    d.viewState = global.vue;
    app.openDoc(“01-Make_E.pdf”, this);
    this.closeDoc();

    app.openDoc rappelle le doc source qui est eensuite fermé
    j’ai bien cru que j’y étais arrivé, sauf que, je ne sais pouquoi, ça fonctionne uniquement la première fois (lorsque acrobat est lancé). Pour les fois suivante le doc cible reste au premier plan et à la première page.

    Dans Acrobat 9 SDK Documentation j’ai trouvé ça :

    The following code can be executed as a mouse-up action from an open document. It closes all disclosed open documents. The code is designed to close the active document last so that the execution of the code will not be abruptly terminated.

    var d = app.activeDocs;

    for( var i in d )

    if( d != this ) d.closeDoc();

    if ( this.disclosed ) this.closeDoc();

    Ne pourrait-on pas s’inspirer de ce script pour fermer la fenêtre de second plan ???

    :???: :Euuuh: :???:

    #49487
    bebarth
    Maître des clés

    J’ai testé le script qui ferme toutes les fenêtres, et comme il est indiqué “It closes all disclosed open documents.”, je me suis dit qu’il fallait mettre “this.disclosed =false;” avant cette parie de script dans le bouton puis remettre “this.disclosed = true;” :
    Le document cible s’ouvre bien en premier plan et à la bonne page, mais le document source reste actif (en second plan).

    Je vais continuer mes recherches, mais mon CD master doit partir pour duplication en milieu de semaine prochaine, et je pense que ce sera cette version qui sera retenue si je ne trouve pas mieux.

    😮 :attention: 😮

    #49488
    Merlin
    Maître des clés

    Il y a peut-être un problème avec la propriété “disclosed” ???

    Sinon, j’ai lu ça, c’est peut-être une piste à suivre : http://www.acrobatusers.com/forums/aucbb/viewtopic.php?id=19633

    :Euuuh:

    #49489
    bebarth
    Maître des clés

    Je pense effectivement que le problème vient de disclosed qui, à ce que j’ai trouvé, doit se situer “st thé top level”, ce qui expliquerait que pour certains scripts ils fonctionne uniquement la première fois.
    Je suis sur une nouvelle piste gotonameddest mais pour l’instant je n’arrive pas à voir comment je pourrais créer une destination différente pour chaque page. :???:

    #49490
    Merlin
    Maître des clés

    Pourquoi ne pas détecter la langue utilisée par Reader à l’ouverture du PDF et envoyer automatiquement l’utilisateur sur le fichier (ou la page) qui correspond à sa langue ?

    Tu y gagnerais peut-être en simplicité et en temps passé…

    Il y a un exemple ici (le fichier lisez-moi de abracadabraSignets) : http://abracadabrapdf.net/articles.php?lng=fr&pg=468

    :???:

    #49491
    bebarth
    Maître des clés

    ???
    dans ton fichier exemple les différentes langues sont dans le même fichier, ce qui n’est pas mon cas !
    :doute:

    #49492
    Merlin
    Maître des clés

    Vers le fichier ou vers la page !

    Les deux sont possibles, il faut pas exemple mettre une page d’accueil sous le nez de l’utilisateur pour qu’il l’ouvre.

    Cette page ne servant en fait qu’à initialiser les variables et à lui ouvrir le fichier correspondant à sa langue (tout au moins dans la langue du logiciel qu’il utilise).

    :geek:

    #49493
    bebarth
    Maître des clés

    Bonjour Merlin,
    Je n’arrive pas à m’en sortir. Un coup ça marche et un coup ça marche pas selon le poste de travail (pc, car j’ai fait ples d’essais pu ça fonctionne sous Mac).
    Connaîtrais-tu quelqun ou une société qui pourrait vérifier le ce que je suis en train de faire, identifier les problèmes (éventuels) et bien sûre les résoudre. J’aimerais demander un devis (et bien entendu c’est urgent).
    Merci d’avance pour ta réponse.
    :attention:

    #49494
    Merlin
    Maître des clés

    En tant que 2e éditeur de logiciel mondial Adobe a aussi le triste privilège d’être la 2e cible des hackers, juste après Microsoft.
    Adobe Reader et Flash player sont devenus des cibles de choix et Adobe publie des correctifs de sécurité de + en + souvent.

    Je crois que certaines fonctions “sensibles” comme les fermetures/ouvertures de documents sont de moins en moins pérennes…

    Cet article est très intéressant :
    http://pro.01net.com/editorial/501337/faut-il-supprimer-adobe-reader-en-entreprise/

    :doute:
    :Euuuh:

    #49495
    alex
    Participant

    Je connais bien votre problème de circulation entre documents pdf et ses fâcheuses conséquences. On croit résoudre le problème à un instant donné et dans un environnement donné, et les difficultés ressurgissent à la moindre mise à jour.
    J’ai lu l’article ci-dessus, bien sûr on peut utiliser un autre lecteur ou on peut empêcher l’exécution du JavaScript embarqué par les documents .pdf …Mais alors, à quoi bon travailler sur des documents interactifs ?

    #49496
    Merlin
    Maître des clés

    Concernant le problème évoqué dans ce fil, il a été résolu.

    Concernant la pérennité des développements en JavaScript on peut effectivement se poser des questions… Sachant quand même que Adobe est très réactif et fait de son mieux pour préserver les compatibilités quand c’est possible.

    :geek:

    #49497
    alex
    Participant

    Le problème n’est pas résolu et vous avez raison, on nous conseille de désactiver le JavaScript.
    http://blogs.adobe.com/psirt/
    :(

    #49498
    Merlin
    Maître des clés

    Le même conseil comme à chaque fois, mais cependant pas d’inquiétude inutile : une nouvelle faille a été découverte, mais par contre aucun PDF ni aucun autre fichier malicieux connu n’exploite cette faille.

    Et Adobe à promis un patch pour le 12 mai.

    :contentdance:

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