|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| [WD16] Impression Pdf dans état Windev |
| Débuté par sbourgeois, 10 aoû. 2011 19:11 - 10 réponses |
| |
| | | |
|
| |
| Posté le 10 août 2011 - 19:11 |
Bonjour,
Je voudrais inclure dans mon état windev un ou plusieurs fichiers pdf. J'ai pour cela fait un état avec un état intégré. Dans mon état intégré j'ai mis un champ image ou je charge mes différents pdf. Pas de problème si mon pdf fait une seule page mais je n'arrive pas à imprimer toutes les pages de mon pdf.
Avez-vous une solution ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 101 messages |
|
| Posté le 23 août 2011 - 13:11 |
Bonjour, Je suis à la recherche d'une solution WD pour l'impression, de fichiers PDf de 1 ou plusieurs pages chacun. Les fichiers sont existants. J'ai aussi essayé le PDF en fond d'état ... mais cela ne marche pour qu'un. Lanceappli ou lanceappliassociée ne permet pas de maitrise l'imprimante. Iimprimeimage + IfinImprime n'imprime que la première page .... Pas simple Merci pour vos cogitations avec, ou sans résultat.
Bonne journée |
| |
| |
| | | |
|
| | |
| |
| Posté le 23 août 2011 - 17:52 |
Bonjour
1. extraire du pdf les pages qui le composent (dans un champ image, en variant le numéro de page, et avec dsauveimage) 2. Faire une boucle sur l'impression de chaque image
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev, et WinDev Mobile international http://fabriceharari.com/index_FR.html
On 23/08/2011 06:30, SR (SFC) wrote:
Bonjour, Je suis à la recherche d'une solution WD pour l'impression, de fichiers PDf de 1 ou plusieurs pages chacun. Les fichiers sont existants. J'ai aussi essayé le PDF en fond d'état ... mais cela ne marche pour qu'un. Lanceappli ou lanceappliassociée ne permet pas de maitrise l'imprimante. Iimprimeimage + IfinImprime n'imprime que la première page .... Pas simple Merci pour vos cogitations avec, ou sans résultat.
Bonne journée
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 101 messages |
|
| Posté le 24 août 2011 - 10:08 |
Merci Fabrice. Je suis arrivé au même résultat après avoir mis mes neurones en action. Le résultat est impecable. Mieux qu'avec le PDF en fond d'état.
Bonne journée |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 101 messages |
|
| Posté le 25 août 2011 - 13:54 |
Bonjour, J'ai chanté victoire trop vite !!! J'ai un phénomène étrange. Mon PDF est composé à l'origine de deux PDf de sources différentes. Source A : Editeur PDF ; Source B : généré par WD iDestination(iPDF, NomFichier) Je fusionne les deux fichiers en un. Pour imprimer, j'extrais chaque page que j' iImprimeImage(MaPage,0,0,iLargeurPage, iHauteurPage) pour finir : iFinImprime
Resultats : Fichier composé de A + B donne A + page blanche B + A donne page blanche + page blanche B+B+B+B+ etc.. donne B+B+B+B+ ETC.. A+A+... donne A+A+A ... etc
Étrange qu'un mixte ne soit pas accepté. Comment y remédier ?
Merci de vos lumières, car je pensais vraiment avoir résolu ce problème. |
| |
| |
| | | |
|
| | |
| |
| Posté le 31 août 2011 - 14:20 |
J'ai trouvé une solution pour éditer mon état windev puis le fusionner avec mes fichiers Pdf qui font plusieurs pages. J'espère que ça pourra aider quelqu'un moi ça marche bien et ça insère bien mes fichiers pdf entre mes éditions.
Il faut utiliser une dll externe gsdll32.dll
Voici mon code pour vous aider car la documentation de la dll n'est pas détaillée. Désolé pour l'indentation !! //Permet d'initialiser la dll PROCEDURE InitDLL() //strDLL est une chaîne //renvoie un entier différent de 0 si DLL chargée SI gnBl_Echargedll = 0 ALORS gnBl_Echargedll = ChargeDLL("gsdll32.dll") FIN
PROCEDURE Imprime() //imprime mon état avec une sortie PDF iDestination(iPDF,sNomPdfEtat) iImprimeEtat(ETA_AGT_AGENTS_NDF_COMPTA) //ajoute dans un tableau TableauAjouteLigne(tabJustif,sNomPdfEtat)
//boucle sur mes fichiers Pdf et les ajoute au tableau HLitPremier(sdReqJustif) TANTQUE PAS HEnDehors(sdReqJustif) TableauAjouteLigne(tabJustif,sdReqJustif.fic_justif) HLitSuivant(sdReqJustif) FIN
SI TableauOccurrence(tabJustif) > 0 ALORS SI fFichierExiste("NDF.pdf") ALORS SI PAS fSupprime("NDF.pdf") ALORS Info("Génération du fichier impossible.","Vérifiez que le fichier NDF.pdf n'est pas ouvert.","Si c'est le cas, merci de le fermer avant de demander l'édition.") FIN FIN //fusionne tous les pdf ret est un booléen = FusionnerPDF(tabJustif,"NDF.pdf") SI PAS ret ALORS Info("Un problème est survenu durant la génération du fichier pdf") FIN SI ret ALORS //Lance mon PDF générer LanceAppliAssociée("NDF.pdf") FIN FIN
// Résumé : <indiquez ici ce que fait la procédure> // Syntaxe : //[ <Résultat> = ] FusionnerPDF (<tabFichiers>, <strFichierSortie>) // // Paramètres : // tabFichiers : <indiquez ici le rôle de tabFichiers> // strFichierSortie : <indiquez ici le rôle de strFichierSortie> // Valeur de retour : // booléen : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // //tabFichiers=Tableau de chaine des fichiers à fusionner (la fusion se fera dans l'ordre du tableau) //strFichierSortie=Fichier à générer PROCEDURE FusionnerPDF(tabFichiers,strFichierSortie)
iCode est un entier système iCode1 est un entier système iTemp est un entier e_Quit est un entier = -101 iNbParam est un entier tabParam est un tableau de 0 chaîne strFichier est une chaîne
bRetour est un booléen = Faux
bFichiersOk est un booléen sG_GS_TYPE_PDF est une chaîne = "pdfwrite"
SI TableauOccurrence(tabFichiers)> 0 ALORS bFichiersOk = Vrai POUR TOUT ELEMENT strFichier DE tabFichiers SI PAS fFichierExiste(strFichier) ALORS bFichiersOk = Faux Info("Le fichier suivant est absent : "+strFichier,"Merci de l'indiquer à votre assistance informatique") SORTIR FIN FIN SI bFichiersOk ALORS InitDLL() SI gnBl_Echargedll <> 0 ALORS iCode = API("gsdll32.dll","gsapi_new_instance",&iTemp,Null) SI iCode>= 0 ALORS TableauAjoute(tabParam,"-dSAFER") TableauAjoute(tabParam,"-dBATCH") TableauAjoute(tabParam,"-dNOPAUSE") TableauAjoute(tabParam,"-debug") TableauAjoute(tabParam,"-sDEVICE="+sG_GS_TYPE_PDF) TableauAjoute(tabParam,ChaîneConstruit("-sOutputFile=%1",strFichierSortie)) POUR TOUT ELEMENT strFichier DE tabFichiers TableauAjoute(tabParam,""+strFichier+"") FIN iNbParam = TableauOccurrence(tabParam) iCode = API("gsdll32.dll","gsapi_init_with_args",iTemp, iNbParam,&tabParam) iCode1 = API("gsdll32.dll","gsapi_exit",iTemp) SI iCode = 0 _OU_ iCode = e_Quit ALORS iCode = iCode1 FIN API("gsdll32.dll","gsapi_delete_instance",iTemp) SI iCode = 0 _OU_ iCode = e_Quit ALORS bRetour = Vrai FIN SINON Erreur() FIN FIN FIN FIN RENVOYER bRetour |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 101 messages |
|
| Posté le 01 septembre 2011 - 22:32 |
bonjour,
J'ai résolu mon probleme avec "gsprint.exe" lancé par LanceAppli() Ce n'est pas aussi élégant, mais cela fonctionne.
Merci pour la participation |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 septembre 2011 - 18:39 |
Bravo et merci pour ton code ça m'aide beaucoup...par contre je bloque car je parviens pas à trouver la bonne version de gsdll32 car celle que j'ai trouvé n'a pas les bonnes fonctions (gsapi_new_instance par exemple)
Peux tu me dire où trouver la même dll que celle que tu utilises ?
Merci. |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 septembre 2011 - 19:33 |
Désolé je ne retrouve plus le site où je l'ai télécharger. La seule chose que je peux te dire c'est qu'elle fait 14,3Mo. Par contre si tu as un site ftp ou je peux aller la déposer je peux te donner la mienne je suis sûre qu'elle marche. |
| |
| |
| | | |
|
| | |
| |
| Posté le 15 septembre 2011 - 13:32 |
Merci, j'en ai trouvé une version qui fonctionne dans les sources de "pdfviewernet" ici : http://code.google.com/p/pdfviewernet/downloads/list
je ne connais pas la version de la dll mais elle date du 05/02/2009 et fait 10,7 Mo ...
merci encore !
bourgeois a écrit dans le message de news <1c49c4a1153bb529b1c97135c122446d@news.pcsoft> :
Désolé je ne retrouve plus le site où je l'ai télécharger. La seule chose que je peux te dire c'est qu'elle fait 14,3Mo. Par contre si tu as un site ftp ou je peux aller la déposer je peux te donner la mienne je suis sûre qu'elle marche. |
| |
| |
| | | |
|
| | |
| |
| Posté le 15 septembre 2011 - 16:15 |
stuck a exposé le 15/09/2011 :
Merci, j'en ai trouvé une version qui fonctionne dans les sources de "pdfviewernet" ici : http://code.google.com/p/pdfviewernet/downloads/listje ne connais pas la version de la dll mais elle date du 05/02/2009 et fait 10,7 Mo ... merci encore ! bourgeois a écrit dans le message de news <1c49c4a1153bb529b1c97135c122446d@news.pcsoft> : Désolé je ne retrouve plus le site où je l'ai télécharger. La seule chose que je peux te dire c'est qu'elle fait 14,3Mo. Par contre si tu as un site ftp ou je peux aller la déposer je peux te donner la mienne je suis sûre qu'elle marche.
il faut version de ghostscript 9.02 pour avoir la dll
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|