Toutes mes réponses sur les forums
-
AuteurRéponses
-
maxwyssMembre
Bonjour,
La terminologie “Champ1#0” , “Champ1#1”, “Champ1#2”, etc. indique les occurrence de champ “Champ1”. Cela veut dire qu’il s’agit du même champ, qui existe en trois endroits dans le document. La documentation Acrobat JavaScript (qui fait partie du Acrobat SDK, à télécharger sur le site Adobe) explique cela avec ldes propriétés au niveau “field” (par example le nom du champ) et au niveau du “widget” (par example l’alignement du champ). Pour des propriétés du niveau “widget”, on fait la distinction dans JavaScript avec les suffices .0, .1, .2 etc.
Maintenant, la valeur (value) d’un champ est au niveau “champ”. Ce que veut dire que si on fusionne les fichiers, le contenu des champs va être egalisé. Donc, si on veut composer plusieurs instances du fichier et garder les valeurs de champs différents, il faut prendre d’autres précautions. Ou il faut utiliser des outils adéquats (disponibles, par exemple, chez Appligent ou des PDF-Tools).
HTH
Max Wyss.
22 janvier 2013 à 22:00 en réponse à : Créer automatiquement une très grande quantité de fichiers PDF. – RÉPONDU #54453maxwyssMembrePour de telles quantités, et particulièrement si PDF-A est demandé, il faut des outils adéquats. Acrobat est trop lent, et “grâce” à des trous de mémoire, le nombre de fichiers traitable par automatisme est limité.
Une des premières adresses pour des outils haute performance pour la création de PDF from .doc ou des autres formats “office” est PDF-Tools AG (http://www.pdf-tools.com/).
HTH
Max Wyss.
17 janvier 2013 à 10:46 en réponse à : Deux champs texte dont un seul en lecture seule. – RÉSOLU #54379maxwyssMembreIl est commun d’avoir des champs de copie ou je ne veux pas que l’utilisateur change des valeurs. Pour passer des informations du champ d’entrée il y a plusieurs possibilitiés (notez que le champ d’entrée porte le nom “champDEntree” et les champs de copie “champDEntröö_1”:
• “push”: lorsque la valeur dans le champ d’entrée est confirmée, elle est poussée vers les champs de copie. Dans l’événement Validation du champ d’entrée on a le code suivant:
this.getField(event.target.name + “_1”).value = event.value ;
notez que cette ligne de code est reutilisable, si la convention de nom de champs est maintenue; on pourrait même créer une fonction au niveau du document.
• “pull”: lorsque la valeur dans le champ d’entrée est confirmée, la sequence de calcul est executée automatiquement, et donc, on peur executer le code suivant dans l’événement Calcul:
event.value = this.getField(event.target.name.substr(0, event.target.name.length-2)).value ;
(pour avoir du code portable).
Personellement, je préfère la première méthode parce qu’elle provoque moins de calculs, et est donc plus performante.
HTH
Max Wyss.
14 janvier 2013 à 09:08 en réponse à : Envoyer un formulaire par messagerie internet. – RÉPONDU #54349maxwyssMembreIl semble que le fichier de l’image n’est pas ou plus disponible…
11 janvier 2013 à 16:03 en réponse à : Quel logiciel utiliser pour un formulaire dynamique et interactif ? – DISCUSSION #54308maxwyssMembreMerci pour les compliments, Merlin.
Le calendrier/date picker est, comme déjà dit, disponible; contactez-moi en privé.
10 janvier 2013 à 21:27 en réponse à : Quel logiciel utiliser pour un formulaire dynamique et interactif ? – DISCUSSION #54306maxwyssMembreJ’arrive un peu tard dans la discussion, voici quand-même quelques commentaires :
• Infopath : Système pour formulaires électroniques développé par Microsoft, utilisant MS Word comme moteur de développement et affichage. Il y a quelques entreprises qui travaillent avec Infopath, mais c’est plutôt un environnement fermé. Il faut un environnement strictement Microsoft, et très bien géré.
• LiveCycle Designer et XFA : Les sources de ce système ont à peu près le même âge que Acrobat et PDF pour formulaires. Originalement développé par JetForms pour la base des serveurs de distribution de formulaires. JetForms s’est re-nommé Accelio et a été acquis par Adobe. Il y avait une période chez Adobe ou on avait “XFA über Alles”, et c’est pourquoi on a co-emballé LiveCycle Designer avec Acrobat Pro pour Windows (Adobe n’a jamais considéré Mac comme plateforme de développement de formulaires (bon, ils ont toujours demandé les lemmings des grandes corporations lors leurs sondages). On a ajouté à Reader (et Acrobat) la capacité d’utiliser des formulaires XFA. Avec Acrobat XI, LiveCycle Designer ne fait plus partie du produit “Acrobat Pro”, mais ce logiciel est vendu séparément par les canaux pour entreprises (et donc remis à sa place originale où il peut briller et être vraiment utile).
Notez que XFA ne fait pas partie de la norme ISO 32000, mais est indiqué comme “aide supplementaire”, ce que veut dire qu’il n’est pas illégal de complémenter un fichier PDF avec XFA.
• Formulaires dynamiques avec PDF : Il est absolument possible de créer des formulaires dynamiques avec Acroforms. Si la granularité est au niveau d’une page, l’utilisation des modèles est élémentaire et existe depuis des années. Si la granularité est plus fine qu’une page, c’est un petit peu plus difficile et complexe, mais de tels formulaires existent et ils sont utilisés en production. Pour une implémentation spécifique, contactez-moi en privé
• Calendrier pour la date (“date picker”): Il existe plusieurs solutions. Entre outre, une solution très facile a intégrer, mais bien performante a été développée par “yours truly”; pour plus de détails contactez-moi en privé (je suis en train de commercialiser cette solution, mais ça va durer un peu de temps; néanmoins, elle est disponible sur demande).
HTH
Max Wyss.
maxwyssMembreMerci pour les fleurs
En fait, la qualité du PDF généré par OpenOffice est très haute, en utilisant GhostScript (et ses libraries).
maxwyssMembreUne autre possibilité de évaluer au moins serait OpenOffice. OpenOffice contient un export de PDF de qualité acceptable. Mais je ne suis pas sur si des liens etc. sont exportés; je crois, mais il faudrait verifier. Mais le prix de OpenOffice ne peut pas être battu…
HTH
Max Wyss.
maxwyssMembreDans cette situation, il n’est même pas nécessaire d’utiliser une decision; les mathématiques le font directement :
var P1 = this.getField(“Texte_49”).value*1 ;
event.value = Math.max(100000, (100000 + ((P1-100000)/2)))) ;HTH
Max Wyss.
13 décembre 2012 à 11:18 en réponse à : Formule pour obtenir le chiffre pair supérieur à l’entrée. – RÉSOLU #54175maxwyssMembreLe code pour cette conversion est un simple one-liner:
var myValue;
myValue = Math.ceil(myValue*0.5) * 2 ;et nous avons toujours des chiffres pairs…
HTH
Max Wyss.
maxwyssMembrePour ça, il faut utiliser les modèles de page. Procédez comme suit (dans Acrobat XI):
1. Ouvrez le document à la page qui devrait devenir le modèle.
2. Ouvrez le panneau Outils, et sélectionnez la section Traitement du document
3. Cliquez sur Modèles de page
4. Dans le dialogue donnez un nom pour ce modèle, puis cliquez sur Ajouter; dans notre example ça sera “myTemplate”
5. Confirmez et fermez le dialogue
6. Ouvrez la Console (
ou ) 7. Entrez le code
this.getTemplate(“myTempate”).spawn(4, false, false) ;
8. Executez le code
Et ça devrait créer une copie de la page choisie après la page 5 (Acrobat commence le compte des pages à zéro)
Si la nouvelle page est introduite après le numéro de page incorrect, corrigez le premier argument dans la ligne de code.
Une explication de la méthode utilisée se trouve dans la documentation pour Acrobat JavaScript (Acrobat JavaScript Reference, qui fait partie du SDK pour Acrobat, téléchargeable du site de Adobe.
HTH
Max Wyss.
maxwyssMembreÇa fonctionn avec console.println() parce que la commande d’ecrire sur la console est dans le loop, et répété chaque fois la loop est passée. Donc le resultat est “sauvegardé” sur la console par chaque tour.
Par contre, dans le second example, il n’y a pas cette sauvegarde dans un protocole, donc tout ce que tu vois est le tout dernier resultat.
HTH
Max Wyss.
maxwyssMembremessageList est redéfinie avec chaque loop, et donc, il est clair que le résultat n’existe que pour le dernier champ.
Une alternative serait l’utilisation d’un array:
var messageList = new Array()
for (var j = 0 ; j < this.numFields ; j++) {
messageList[j] = this.getNthFieldName(j)
}
ou si on veut garder l’indexe dans la liste, utilisez la ligne suivante:messageList =
Dans notre cas spécifique, il n’y a aucune différence fondamentale entre un Object et un Array, parce que l’indexe est le numéro ordinale.
HTH
Max Wyss.
maxwyssMembreBonjour,
Une possibilité serait d’extraire la partie XML du format XFA, et la réinterpréter pour créer des éléments Acroforms.
Il y a également des utilitaires, par exemple de Windjack, mais les résultats ne sont pas parfait. Pour récupérer la logique, il n’est pas possible d’avoir un processus automatique, car il y a des différences fondamentales entre Acrobat JavaScript et JScript.
Si c’est pour un projet sérieux, nous pouvons en discuter…
HTH
Max Wyss.
maxwyssMembreEn fait, la methode proposée fonctionne, parce que l’événement Format ne change pas la valeur du champ; ça ne change que comment la valeur est affichée.
Max Wyss.
maxwyssMembreSi 0 n’est pas une valeur “legale” (ou valide), il est simple de masquer: Dans l’èvènement Format, additonner le code JavaScript suivant:
if (event.value == 0) {event.value = “”}
et ça va afficher un champ vide.
Si le champ devrait être formatté quand la valeur est valide, le code se modifierait comme suit:
if (event.value == 0) {
event.value = “” ;
} aelse {
event.value = util.printf(“%.2f”, event.value) ;
}La syntaxe du string de formattae est decrite dans la documentation Acrobat JavaScript, qui fait partie du Acrobat SDK, téléchargeable du site Adobe.
HTH
Max Wyss.
maxwyssMembreEn cas des formulaires AcroForm (non créés par LiveCycle Designer), chaque champ a son numéro d’ordre de tabulation. Ce numéro d’ordre de tabulation est egalement l’ordre verticale des champs.
Pour modifier l’ordre de tabulation, il y a une possibilité, la fonction setFocus(), qu’on place normalement dans l’événement Champ désactivé (onBlur).
Mais attention: si on fait trop, il n’est plus possible de sortir d’une suite de champs.
HTH
Max Wyss.
23 novembre 2012 à 21:41 en réponse à : Selon quantités : différentes valeurs de frais de port. – RÉSOLU #54014maxwyssMembreBienvenu dans le Forum.
Une possibliité pour simplifier le tout est de utiliser la valeur affichée et la valeur de retour dans la liste déroulante (quantité). Dans les “Proprietés” du champ, dans la section “Options”, on entre dans le 1er champ la valeur qui va être affichée, et dans le 2e champ la valeur des frais de ports.
Le champ Port seraa rempli automatiquement, et devrait être en “lecture seule” (même chose pour le champ Total).
Et maintenant, il faut placer un petit JavaScript dans l’événement “Calcul” du champ “Total”:
this.getField(“Port”).value = this.getField(“Quantite”).value ;
event.value = this.getField(“Prix”).value*1 + this.getField(“Port”).value*1 ;Et ça devrait fonctionner.
HTH
Max Wyss.
maxwyssMembreL’evenement “onFocus” se nomme “champ activé”, et l’evenement “onBlur” est nommé “champ desactivé”. Les deux se trouvent dans les Actions des proprietés de champ.
HTH
Max Wyss.
maxwyssMembreLe premier choix serait les spécifications ISO 32000, dont une version peut être téléchargée gratuitement du site Adobe. (merci Adobe, sinon cela couterait normalement quelques centaines d’Euros.)
L’autre document à étudier serait la documentation générale du SDK.
HTH
Max Wyss.
maxwyssMembreif (KALO.value == “content”)
{Merlin = “content aussi”;}:geek:
That’s a low-cost content management system…
hehe
Max.
15 novembre 2012 à 20:26 en réponse à : Intéractivité entre tableau et graph dans un PDF. – RÉSOLU #53937maxwyssMembre@alex: Merci pour lacorrection; je n’ètais pas assez precis…
Il y a cette discrepance entre la documentation at la realité; j’ai deposé des bug reports et des feature requests avec Adobe… peut-être au cours de la prochaine decennie, ça va être corrigé…
Concernant la documentation “readOnly”; c’est correct dans le PDF qui fait part de la documentation du SDK pour Acrobat 10 (la version couramment disponible; il semble qu’ils unt quelques delais avec la version pour Acrobat 11.
Max Wyss.
15 novembre 2012 à 19:49 en réponse à : Compatibilité entre Acrobat Pro 7 et OS X 10.8 (Mountain lion) ? – RÉPONDU #53945maxwyssMembreAhem… tu as raison; Acrobat 7 est une application PowerPC pour laquelle Rosetta est necessaire…
C’est pourquoi 10.6.8 est surnommé parfois “le XP de Apple”…
Max Wyss.
15 novembre 2012 à 18:26 en réponse à : Intéractivité entre tableau et graph dans un PDF. – RÉSOLU #53935maxwyssMembre@alex: J’ai vraiment oublié la possibilité des annotations qui, en fait, permettraient d’utiliser du texte si necessaire.
Un petit problème existe avec les annotations: Même si elles sont generés readonly, elles ne sont pas, et elles sont accessibles par la sequence tab. Il faut donc prendre des mesures pour qu’elles ne soient pas accessibles. Et egalement, même si generés readonly, ils peuvent être déplacées. Auquel cas, il suffit de placer un champ transparent et readonly en dessus.
HTH
Max Wyss.
15 novembre 2012 à 10:56 en réponse à : Compatibilité entre Acrobat Pro 7 et OS X 10.8 (Mountain lion) ? – RÉPONDU #53943maxwyssMembreSi je me souviens correctement, Rosetta n’etait plus disponible pour OSX 10.7. Donc, des applications originalement PowerPC ne fonctionnent plus. Et une fois de plus, si je me souviens correctement, rien n’a changé avec 10.8.
Comme il me faut de temps en temps acceder Acrobat 5, je suis bloque avec 10.6.8.
La conclusion: si Acrobat 7 fonctionne sous 10.7, il devrait fonctionner sous 10.8.
Mais il est possible que j’ai tort… ça ne serait pas la première fois…
HTH
Max Wyss.
-
AuteurRéponses