JavaScript Debugger identifies flattenPages is not a function  (Lu 1004 fois) Partager ce sujet Imprimer

1 B


GD  27 novembre 2019 : 15:44

Hi, I'm using Acrobat Pro 9 on Mac using macOS Sierra version 10.12.6. I have a need to flatten pages as I am storing different file names of the same PDF fillable form in the same folder. I found your flatten tool plug-in and the installation was easy. However, when I tried to flatten the file I got the following error message in a JavaScript Debugger window:


Acrobat EScript Built-in Functions Version 9.0
Acrobat Annotations / Collaboration Built-in Functions Version 9.0
Acrobat Annotations / Collaboration Built-in Wizard Functions Version 9.0
Acrobat SOAP 9.0
TypeError: this.flattenPages is not a function


I am a very basic user and definitely not a programmer. So baby talk is much appreciated.


Thanks
GD





IP archivée


Merlin  27 novembre 2019 : 16:08

Welcome

I guess that you are using the current version of the abracadabraTools DC plugin into your Acrobat 9.
This could raises compatibility issues because many things have changed in 10 years.
With Acrobat Pro 9 you must use abracadabraTools version 3.1

Download this PDF and open it with Acrobat Pro, the plugin and instructions are in the PDF (remove any previously installed abracadabraTools version before installing this one) : www.abracadabrapdf.net/download/abracadabraTOOLS_31.pdf

IP archivée


Jean-Eugène Houdin  01 novembre 2020 : 14:06

Bonjour les Magiciens et Magiciennes,

sur Mac OSX 10.8.5 avec Acrobat Pro X 10.1.16, ça retourne cette erreur à partir de l'icône seulement
mais ça marche à partir du menu.

- -
JEH

IP archivée


Merlin  01 novembre 2020 : 14:29

Ce bug a été réglé dans la version 2020 des abracadabraTools, je vous invite à télécharger et à installer cette version :
https://www.abracadabrapdf.net/utilitaires/acrobat-plugins/abracadabratools/

IP archivée


Jean-Eugène Houdin  01 novembre 2020 : 17:09

j'utilise la version 2020.

en réduisant la fonction sur l'icone comme ceci, ça fonctionne
function aplatirDepuisIcone(){
    //app.alert("lolo")
    this.flattenPages()
    //event.rc = event.target != null
    //myTrustedAplatirDoc(aplatirDoc)
    //null!=this.event.target&&(documentCible=this,choix=app.popUpMenuEx({cName:apla2,bEnabled:!0},{cName:"-",bEnabled:!1},{cName:apla3,bEnabled:!0}),choix&&(choix==apla2&&myTrustedAplatirDoc(aplatirDoc),choix==apla3&&myTrustedAplatirPage(aplatirPage)))
}

ok c'est le this qui diffère
  • appel par l'icone renvoie object root
  • appel par menu renvoie object doc
avec
function aplatirDoc(){
    app.beginPriv();
    app.alert(this)

IP archivée


Jean-Eugène Houdin  01 novembre 2020 : 21:01

Bon ça marche correctement maintenant
en redéfinissant le this à l'entrée des 2 fonctions
function aplatirDoc(){
    var myDoc = event.target;
...
function aplatirPage(){
    var myDoc = event.target;
...
ensuite remplacer les this qui appelle flattenPages
this.flattenPages
DEVIENT
myDoc.flattenPages
:soleil:

IP archivée


Merlin  02 novembre 2020 : 11:37

Merci pour ta contribution magique.

En fait le bug que j'ai corrigé dans la version 2020 n'existait que sur Windows et pas sur Mac.
Grâce à toi j’apprends que maintenant cette correction fait que ce même bug existe maintenant sur Mac.

J'y ai passé des heures pour finalement comprendre que c'est un bug d'Acrobat, qui se mélange les pinceaux. Je l'ai signalé à Adobe…   :siffle:
En attendant j'ai essayé de le contourner mais comme je n'ai plus de Mac récent je n'ai pas vraiment pu tester la version 2020 sur cet OS.

Je suis preneur de ton code qui fonctionne pour l'intégrer à la version 2021 mais je crois que je vais devoir faire ce que je ne voulais pas faire : deux fonctions identiques mais séparée, au final ce sera plus simple.
 :geek:

IP archivée


Jean-Eugène Houdin  02 novembre 2020 : 20:10

pas de quoi, merci pour ton site.
Voici la partie finale du code qui inclus les modifications :
function aplatirDepuisIcone(){
    null!=this.event.target&&(documentCible=this,choix=app.popUpMenuEx({cName:apla2,bEnabled:!0},{cName:"-",bEnabled:!1},{cName:apla3,bEnabled:!0}),choix&&(choix==apla2&&myTrustedAplatirDoc(aplatirDoc),choix==apla3&&myTrustedAplatirPage(aplatirPage)))
}

function aplatirDoc(){
    app.beginPriv();
    var myDoc = event.target;
    try{
        if("undefined"==typeof bAffichAlerteAplatir&&(bAffichAlerteAplatir=!0),bAffichAlerteAplatir){var f={bInitialValue:!0,bAfterValue:!1};4==app.alert({cMsg:cMessAplatissDoc,cTitle:strTitreId,oCheckbox:f,nIcon:2,nType:2})&&(bAffichAlerteAplatir=!f.bAfterValue,myDoc.flattenPages(),app.beep())
        } else {
            myDoc.flattenPages()
            app.beep()
        }
    }catch(ty){
        console.println(ty)
        console.show()
    }
    app.endPriv()
    }
    var myTrustedAplatirDoc=app.trustedFunction(aplatirDoc);

function aplatirPage(){
    var myDoc = event.target;
    app.beginPriv();try{if("undefined"==typeof bAffichAlerteAplatir&&(bAffichAlerteAplatir=!0),bAffichAlerteAplatir){var f={bInitialValue:!0,bAfterValue:!1};4==app.alert({cMsg:cMessAplatissPag,cTitle:strTitreId,oCheckbox:f,nIcon:2,nType:2})&&(bAffichAlerteAplatir=!f.bAfterValue,myDoc.flattenPages(myDoc.pageNum),app.beep())}else myDoc.flattenPages(myDoc.pageNum),app.beep()}catch(f){console.println(f),console.show()}app.endPriv()}var myTrustedAplatirPage=app.trustedFunction(aplatirPage);if(1!=global.aTmenAide){if("FRA"==app.language)var strMenAide00="abracadabraTools",strMenAide01="Support & assistance...",strMenAide02="Actualisation...",strMenAide03="https://www.abracadabrapdf.net/?p=111",strMenAide04="Site web",strMenAide05="https://www.abracadabrapdf.net/";else strMenAide00="abracadabraTools",strMenAide01="Support & Assistance...",strMenAide02="Check for update...",strMenAide03="https://www.abracadabrapdf.net/?p=972",strMenAide04="Web Site",strMenAide05="https://www.abracadabrapdf.net/?p=1591";app.addMenuItem({cName:"-",cParent:"Help",nPos:21,cEnable:!1,cExec:null}),app.addSubMenu({cName:strMenAide00,cParent:"Help",nPos:22}),app.addMenuItem({cName:strMenAide04,cParent:strMenAide00,nPos:0,cExec:"app.launchURL(strMenAide05);"}),app.addMenuItem({cName:strMenAide02,cParent:strMenAide00,nPos:1,cExec:"app.launchURL(strMenAide03);"}),app.addMenuItem({cName:strMenAide01,cParent:strMenAide00,nPos:2,cExec:"app.launchURL('https://abracadabrapdf.net/forum/');"}),global.aTmenAide=1}}

IP archivée


Merlin  03 novembre 2020 : 08:52

Merci.

IP archivée