bonjour,
je génère dans un répertoire n fichiers pdf par jour.
Je voudrais en fin de journée ne faire qu'un seul .pdf qui me reprenne l'ensemble de mes générations de la journée.
y a t il un composant de Talend qui permette cela?
Merci de votre aide
bonjour,
je génère dans un répertoire n fichiers pdf par jour.
Je voudrais en fin de journée ne faire qu'un seul .pdf qui me reprenne l'ensemble de mes générations de la journée.
y a t il un composant de Talend qui permette cela?
Merci de votre aide
Bonjour,
Je t'es créé un composant dsMergePdf qu'il le fait.
Pour cela j'ai forqué le tFileList de Talend 6.1
J'ai remonné les fichiers.
Dans le fichier de config j'ai ajouté les lignes :
et
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <PARAMETER NAME="FILENAME" FIELD="FILE" NUM_ROW="1" REQUIRED="true" REPOSITORY_VALUE="FILE_PATH"> <DEFAULT>"__COMP_DEFAULT_FILE_DIR__/merge.pdf"</DEFAULT> </PARAMETER>
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <IMPORT NAME="pdf-box" MODULE="pdfbox.jar" REQUIRED="true" /> <IMPORT NAME="common-logging" MODULE="commons-logging.jar" REQUIRED="true" />
Dans le fichier du code de début j'ai ajouté les lignes
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.apache.pdfbox.multipdf.PDFMergerUtility mergePdf_<%=cid%> = new org.apache.pdfbox.multipdf.PDFMergerUtility();
Dans le fichier de fin j'ai ajouté
Code : Sélectionner tout - Visualiser dans une fenêtre à part mergePdf_<%=cid%>.addSource(currentFilePath_<%=cid%>);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mergePdf_<%=cid%>.setDestinationFileName(<%= ElementParameterParser.getValue(node, "__FILENAME__") %>); mergePdf_<%=cid%>.mergeDocuments();
Par contre je n'ai pas pu te joindre le zip avec les jar configuré dans le composant
Il faut que tu récupères le jar commons-logging.jar a cette adresse http://apache.trisect.eu//commons/lo...1.2-bin.tar.gz (il est dans l'archive)
et le jar pdfbox.jar a cette url http://apache.trisect.eu/pdfbox/2.0.2/pdfbox-2.0.2.jar
a+
enorme la réponse supergeoffrey.
je test ca ce weekend et je te dis ce qu'il en est !
Merci
J'ai commencé a essayer d'utiliser ton composant.
Je vois le composant dans Talend (deja un exploit pour moi) , mais je ne sais pas quoi faire du jar commons-logging.jar.
J'ai cherché sur le fofo et sur le net mais rien de concluant en rapport avec Talend
As tu une piste pour moi ?
Les deux jar il faut les mettre à la racine du composant.
En fait, le site jetait mon zip car il contenait des fichiers exécutables.
Globalement ces deux lignes veulent dire, si tu m'ajoutes à un job, j'ai besoin de ces deux jar. Donc Talend les ajoute au classpath et au build comme un grand :pEnvoyé par supergeoffrey
Au fait il a été long ton week-end!
Juste un très grand merci supergeoffrey
ca fonctionne parfaitement !
tu n'as pas de weekend de 20 jours toi???![]()
Salut supergeoffrey,
Je suis également fortement intéressé par ton composant MergePDF (peut-être là solution à mon problème de rapport Jasper posté dans une autre demande ...)
J'ai téléchargé ton composant, récupérer le JAR du commons-loggins d'après ton lien, en revanche le lien pour le JAR du pdfbox ne fonctionne pas, d'après le site il s'agit de la version 2.0.3. J'ai donc téléchargé cette version et l'ai rajouté dans ton composant --> cf http://apache.trisect.eu/pdfbox/2.0.3/
Cependant, lorsque je souhaite utiliser ton composant dans un job, j'ai un message d'erreur indiquant que le module pdfbox est manquant (pas de problème pour le module commons-loggins en revanche) :
Pourtant dans le composant le module est bien présent selon le nom spécifié das le XML :
C'est la première fois que je tente d'utiliser un composant "personnalisé", donc peut-être que j'ai raté quelque chose, ou bien je n'ai pas téléchargé le bon JAR ...
Aurais-tu une petite idée STP ?
Bonne journée,
Pascal
Salut Pascal,
Sorry pour le retard, je ne suivait plus les flux.
Le nommage des jar semble correct !
Par contre c'est pas une bonne pratique de déployé les composants perso dans le local provider il fait partit de la version de Talend.
Tu dois créer un dossier pour tes composants personnalisés.
Et tu administres ça dans l'onglet préférence de Talend
C'est peut-être pour ça que Talend ne te l'as pas détecté...
Et si il ne rale pas pour le common logging c'est que le pdfbox est défini avant
Pas de soucis pour le délaiOn est tous sous l'eau en général
Merci pour ton retour, j'avoue j'avais mis le composant dans la bibliothèque Talend par facilité pour tester ...
Je vais dès possible déplacer ton composant dans une bibliothèque personnelle et retester, je te dis ce qu'il en est.
Salut Geoffrey,
J'ai déposé le composant dans un répertoire dédié aux composants personnels Talend, configurer les préférences, puis redémarrer Talend ...
et ... ça fonctionne !
Merci 1) Pour ton aide et 2) Pour ce composant qui me sera très utile je pense.
Petite Question : La personnalisation de composant a l'air puissant, c'est assez intuitif avec une base de connaissances en Java ou il faut vraiment être calé en Java pour en faire ?
Salut,
Si tu connais java et JSP pour personnaliser ça reste assez simple. Après il faut souvent trouver comment le faire en Java
Après si tu décides de développer des composants de zéro, la il faut bien maîtriser Talend (Structure d'un composant, génération du code), Java et avoir une conception plutôt générique.
Bonjour,
Je me permets de remettre à jour cette discussion (1 an après) !
Je suis débutant ++ sur Talend et java et je souhaiterai fusionner des fichiers pdf dans un seul (je crois que ce que vous proposez permet de le faire).
J'ai bien réussi à intégrer votre composant "dsMergePDF" mais je ne vois pas comment l'utiliser.
En effet, j'imagine que je dois mettre mes fichiers pdf en input (mais comment ? ) et ensuite comment utiliser votre composant et retourner un output PDF
Bref, je nage mille excuses
Merci d'avance,
ptiteratte
C'est quoi ton problème ?
Tu en ai ou ?
Pour info, j'ai modifié ma signature pour toi![]()
Partager