Lecture de documents PDF
Dans cette page, nous aurons l'occasion d'aborder plusieurs opérations :
Nous allons également aborder le délicat problème de l'utilisation d'une même base sur des plateformes différentes. En effet, le comportement de FileMaker peut parfois différer entre les Mac et les PC. C'est notamment le cas pour la lecture des PDF. En effet, hors l'utilisation de QuickTime, propre aux MacIntosh, il n'est pas possible de lire directement un document PDF dans une rubrique Multimédia de FileMaker Pro, si ce document est stocké "en dur" dans la rubrique, au contraire d'une image (par contre, s'il est inséré en tant qu'objet "lié", il est parfaitement lisible). Nous allons donc utiliser deux méthodes de lecture des PDF :
DescriptionFilemaker Pro permet de stocker dans des rubriques multimedia des images ou des fichiers. Lorsqu'un document pdf est stocké (par exemple la facture d'un fournisseur), s'il est mis dans la rubrique Multimedia par le menu "Insertion => Fichier", seule l'icône du fichier apparait, si on utilise "Insertion => Image", on peut voir le document, mais cette visualisation se limite à la première page, enfin, s'il est importé par "Insertion => Quicktime" (normalement destiné aux fichiers sons et video), il est lisible sur un Mac uniquement Dans notre fichier, sur la table FFO_FacturesFournisseurs, nous voudrions stocker les factures reçues en format PDF, et mettre un script au point pour les lire. On crée d’abord une rubrique ImageFacture dans la table FFO, de type multimedia, et un modèle vierge avec cette rubrique, FFO_Image. Les fichiers PDF seront insérés en tant qu'image, sans liaison externe, dans la rubrique multimédia "ImageFacture". En effet, on prévoit que la facture reçue peut se trouver sous une autre forme de fichier, GIF ou JPEG par exemple, auquel cas elle sera directement lisible dans la rubrique multimédia (si elle ne fait qu'une page, ce qui est le cas d'une image). Un bouton ad hoc devra nous permettre d'insérer l'image aux bons formats et de lire le document. S'il s'agit d'un PDF (ce que nous allons donc tester), nous devrons le placer automatiquement à l'endroit désigné pour que le Web Viewer puisse le retrouver et le lire. On crée également une rubrique ImageFactureQ qui permettra de recevoir le document au format Quicktime. ModèleOn crée donc un modèle vierge, basé sur l'ancre FFO__, et on le prévoit assez haut, un peu plus grand que la taille d'une page DIN A4, repérable par les lignes hachurées sur le modèle. En effet, il s'agira le plus souvent de stocker l'équivallent PDF d'une feuille DIN A4. On nomme ce modèle FFO_Image. Sur le modèle, on place un Onglet à 3 onglets, l'un appelé "Image", l'autre "PDF" et le troisième "PDF Quicktime". La largeur de l'onglet doit être plus grande que la position de la ligne hachurée verticale. Question cosmétique, les onglets sont justifiés et carrés (c'est plus discret...) : Lorsque c'est fait, on nomme chacun des onglets à l'aide de la fenêtre "infos". Pour ce faire, on clique au besoin 2 fois sur chaque onglet pour qu'il soit sélectionné (une bordure l'entoure) et on encode le nom dans la fenêtre "Infos" : Image est nommé image, PDF est nommé pdf et PDF Quictime est nommé pdfq: On place la rubrique ImageFacture sur l’onglet image, en prenant toute la hauteur et largeur possible, respectant +/- les proportions DIN A4. Dans les options d’image, on précise de réduire l’image en conservant les proportions d'origine : On place de la même manière notre rubrique ImageFactureQ sur l'onglet PDF Quicktime. Web viewerIl existe, dans l’application FileMaker, un dossier (sous-directory) appelé "Web" et rarement utilisé. On va l’utiliser pour stocker les exports des documents PDF et les lire. Sur l’onglet "pdf", on place un Web Viewer, et on y met comme adresse (URL) dans la fenêtre de calcul :
Quelques explications : Cas ( Obtenir ( PlateformeSystème ) = "-2". ObtenirTexte ( FFO__::ImageFacture ) donne le nom du fichier PDF stocké dans la rubrique multimédia "ImageFacture", pour autant qu’il ne soit pas lié, mais stocké en dur dans la rubrique. L’adresse ainsi calculée devrait donner par exemple ceci en Windows :
ou en Mac :
Les parties en gras sont les chaînes de caractères fixes de la formule. Le WV est élargi aux mêmes proportions que la rubrique image sur l’autre onglet : Le scriptVoici le script brut : Il nécessite quelques explications...
Si [Obtenir (NombreEnreg Total ) = 0 ]
Aller à l'objet [ Nom d'objet : "image" ]
Si [Not EstVide ( FFO__::ImageFacture )]
Activer rubrique [ FFO__::ImageFacture ]
Si [ Fin ( ObtenirTexte ( FFO__::ImageFacture ) ; 3 ) = "pdf" ]
Si [ Obtenir (PlateformeSystème) ≠ "-2" ]
Sinon
Remarque sur le SI vérifiant le format pdf : comme vous pouvez le constater, si cette condition n'est pas vérifiée, on va directement à la fin du script. Normal, on a inséré une image et on reste sur cet affichage. Pour chaque nouvelle facture fournisseur reçue sous forme digitale, il suffit à présent de lancer le script pour stocker le document et lire ce qu'on a reçu :
Remarque sur la lecture du PDF en QuickTime : il faut cliquer sur l'image pour faire apparaître tout en bas la barre de lecture. Comme il ne s'agit pas d'un film, nous utiliserons pour faire défiler les pages les deux symboles situés à droite de cette barre, le curseur se déplaçant en fonction du nombre de pages vues et restantes. Voilà, reste à placer un bouton sur le modèle FFO_Fiche par exemple pour exécuter ce script. En effet, de cette façon, il sera bien posé sur l'enregistrement d'une facture pour laquelle nous souhaitons mettre une image. Nous n'aurons ensuite plus qu'à le ranger au bon endroit dans notre liste de scripts et, bien sûr à le commenter comme il faut... N'oublions pas non plus de ranger notre nouveau modèle dans la liste, avec les modèles FFO_. Et voici notre fichier à jour. Bien sûr il ne contient pas de pdf, puisque c'est à vous de lui en indiquer.
|