begin process at 2008 05 17 03:06:46
1 173 899 membres
32 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CREATION DE FICHIER PDF


Information sur la source

Catégorie :Fichiers / Disque Classé sous : PDF, Librarie, Fichier, Format, Library Niveau : Débutant Date de création : 05/01/2008 Date de mise à jour : 11/04/2008 10:03:08 Vu / téléchargé: 4 245 / 367

Note :
Aucune note

Commentaire sur cette source (44)
Ajouter un commentaire et/ou une note


Description

Ce code montre comment créer un fichier PDF grâce à la librairie SFPDF que je développe également. C'est une version qui possède les fonctions de bases. Je poserai un peu plus tard une nouvelle librairie permettant de faire des trucs beaucoup plus fun avec le PDF.

Cette librairie à l'avantage d'être totalement indépendante.

Conclusion

Si jamais vous rencontrez des bugs n'hésitez pas à me le faire remonter. Cette librarie est encore en test et est sujet à plein de modification.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

05 janvier 2008 01:56:54 :
Correction orthographique
11 avril 2008 10:03:09 :
- Correction d'un bug dans l'écriture des nombres decimaux. - Ajout de fonction. - Modification de la fonction cell.
  • signaler à un administrateur
    Commentaire de omnia le 05/01/2008 10:57:34

    Salut,

    superbe source, j'attend avec impatience le code de la librairie :p.

    Bon codage :)

  • signaler à un administrateur
    Commentaire de JP_JEEP le 07/01/2008 09:58:08

    Salut,
    > Moi aussi je suis interessé par le code de ta librairie, mais surtout, ce qui m'intéresse c'est de savoir si ta DLL est facilement utilisable à partir d'un programme en VB6.

    Merci.

  • signaler à un administrateur
    Commentaire de Arnotic le 07/01/2008 20:45:55 administrateur CS

    Il est aussi simple que d'utiliser n'importe quelle autre DLL. C'est tout à fait réalisable.

  • signaler à un administrateur
    Commentaire de davidauche le 08/01/2008 18:46:01

    D'après le screenshot ça l'air super! (bravo)
    J'ai deux questions :
      1- Ce programme permet de créer des fichiers pdf à partir?
      2- Et surtout si on peut intégrer un fichier de style CSS! pour la mise en forme?

  • signaler à un administrateur
    Commentaire de deck_bsd le 08/01/2008 20:31:23

    Hey vraiment très bien cette lib . Posteras-tu un jours le code de la lib ?

  • signaler à un administrateur
    Commentaire de Arnotic le 08/01/2008 20:41:28 administrateur CS

    Davudauche :

    1 - Ce programme permet de créer des fichiers PDF à partir de ton application, à partir de n'importe quel programme. Et cette librairie n'utilise rien. Elle écrit directement le fichier PDF.

    2 - Pas de weberie. On ai dans des fichiers PDF.

    DECK_BSD : Oui possible. On fur et à mesure du temps.

  • signaler à un administrateur
    Commentaire de davidauche le 08/01/2008 22:16:48

    Bah justement, c'est intéressant d'avoir un système de style(+classes) pour relooker mes pdf et faciliter la mise en forme d'un document pdf qui contient un grand nombre de page!
    L'idée a déjà été abordé par quelques lib spec à la création des fichiers pdf.
    Bref! tu peux l'ajouter dans la liste de ToDo de cette source :)

    Merci

  • signaler à un administrateur
    Commentaire de Arnotic le 09/01/2008 23:12:58 administrateur CS

    Ne m'intéresse pas. Je développe pour des développeurs d'applications, pas pour des scripteurs de sites. Donc cette approche n'est pas cohérente.

  • signaler à un administrateur
    Commentaire de cohorte le 10/01/2008 13:36:59

    Chouette comme dll, mais la création du pdf est vraiment pas facile à comprendre (=>SFPDF_TestDll.cpp)
    J'aimerais pouvoir utiliser ta dll dans mon projet, pour pouvoir exporter une image en pdf.

    Je pense qu'il serait bien de commenter ce fichier.

  • signaler à un administrateur
    Commentaire de Arnotic le 10/01/2008 22:34:19 administrateur CS

    SFPDF Library.pdf décrit l'API de la DLL. Sinon demande et je te répondrai.

  • signaler à un administrateur
    Commentaire de lassie14 le 22/01/2008 20:28:57

    pas moyen de compiler
    comme ton projet na pu etre ouvert par mon visual j'ai voulu le recréer mais:
    plusieur probleme de cast que j'ai pu corriger (je suppose que tu as visual 2003 (j'ai la 2005 cela doit venir de la)
    mais je n'ai pas pu réussir a compiler il me dit qu'il n'arrive pas arésoudre les lien pendant l'édition des liens est ce normal qu'il n'y est pas le .obj
    ou mon erreur ? c'est bete parceque c'est source me donne des idé de plus elle me parait interessante

  • signaler à un administrateur
    Commentaire de Arnotic le 22/01/2008 21:46:14 administrateur CS

    non j'ai visual studio 2008. tes problèmes de cast vient du fait que tu compiles le code comme C++ et non C.

    pour les problèmes de link il faut que tu rajoutes à ton compilo SFPDF.lib. Aucun besoin de fichier obj.

  • signaler à un administrateur
    Commentaire de lassie14 le 22/01/2008 21:53:20

    a j'ai aussi le 2008 mais pas encore installer
    sinon j'ai bien rajouter comme ressource le fichier SFPDF.lib

  • signaler à un administrateur
    Commentaire de Arnotic le 22/01/2008 22:12:51 administrateur CS

    si tout est fait correctement aucune raison que la compilation ne fonctionne pas sur VS, puisque c'est compilé déjà avec. donc problème config du compilo.

  • signaler à un administrateur
    Commentaire de lassie14 le 22/01/2008 22:24:05

    merci pour ces réponse ci rapide
    donc j'ai reconfigurer mes option pour compiler en C la ça marche si je suis en release sinon meme erreur que avant
    donc je pense que tu as raison le probleme doit veir de chez moi mais je n'ai aucune idée d'ou cela peu venir
    sinon compilé en mode release ça passe la compilation mais le programme ne s'execute pas
    et quand je double clique dessus rien ne ce passe

  • signaler à un administrateur
    Commentaire de dagosg le 07/04/2008 16:56:37

    salut,
    j'ai essayé ta librairie.
    Elle marche très bien sous Windows XP,
    par contre, sous Windows 2000 j'obtiens l'exception 0xC000001D (au moment de l'appel de la fonction 'SFPDF_Init'. J'ai essayé en portrait et en paysage, mais pas de changement.
    Sais-tu s'il y a moyen d'utiliser ta librairie sous Windows 2000?
    Merci

  • signaler à un administrateur
    Commentaire de Arnotic le 07/04/2008 19:04:02 administrateur CS

    Je n'ai pas testé sous Windows 2000. Il faudrai que j'en monte un pour faire des tests. En théorie ca devrait pourtant passer. Mais à première vue ce n'est pas le cas.

    Si une autre personne à des feedbacks...

  • signaler à un administrateur
    Commentaire de cartes1 le 08/04/2008 08:37:06

    Bonjour
    Super ta librairie sous VS 2008, mais je programme sous VC++6 et là impossible de lier tes fichiers même en incluant le fichier SFPDF.lib.
    Est-il impossible d'utiliser ta librairie sous VC++6
    merci d'avance de ta réponse

  • signaler à un administrateur
    Commentaire de Arnotic le 08/04/2008 09:50:12 administrateur CS

    Tu peux utiliser la librarie avec LoadLibrary() et GetProcAddress().

  • signaler à un administrateur
    Commentaire de cartes1 le 08/04/2008 17:34:23

    Désolé ARNOTIC je te remercie pour ta réponse rapide, mais ça ne fonctionne pas ni avec LoadLibrary() et GetProcAddress(), ni avec #pragma comment(lib, "SFPDF.lib"), ni en incorporant SFPSDF.lib et SFPDF.dll dans le programme avec VC++6: toujours la même erreur du lieur et les fonctions ne sont pas trouvées.
    S'agit-il d'un problème de paramètrage du compileur?
    Par contre ton programme fonctionne bien sur VS2008 Express lorsque j'utilise ton propre projet mais si l'on veut recompiler ce programme dans VS2008 avec un nouveau projet j'obtiens exactement les mêmes erreurs du lieur que dans VC++6.Quel est donc le problème?

  • signaler à un administrateur
    Commentaire de dagosg le 08/04/2008 22:07:05

    Moi aussi j'utilise VC++6. Il faut que tu recréé la librairie (le .lib) à partir de la dll. Pour cela, tu a un outils fourni avec builder (implib.exe je crois) qui te permet de recréer le .lib.
    Si tu t'en sors pas je t'enverai directement le '.lib' et le source qui va avec si tu veux.

    Arnotic, si tu veux fourni moi une version avec debug (genre écriture de traces dans un fichier), je te dirais où ça plante sous Win2K.

  • signaler à un administrateur
    Commentaire de Arnotic le 08/04/2008 22:12:48 administrateur CS

    Je vais essayer de faire cela pour les jours qui viennent. Dés que j'ai un peu de temps. De plus je mettrais à jour la librairie à laquelle j'ai ajoutées des fonctions supplémentaires... Merci pour vos feedbacks.

  • signaler à un administrateur
    Commentaire de cartes1 le 09/04/2008 05:39:34

    Merci DAGOSG
    J'ai du utiliser "lib.exe" pour recréér SFPDF.lib car les lib de BCB et de VC++6 sont incompatibles. malgré cela ça ne marche pas et j'ai toujours les mêmes 14 erreurs du lieur:
    "SFPDF_TestDll.obj : error LNK2001: unresolved external symbol "void __stdcall etc..."
    Si avec ton "lib" le programme fonctionne avec VC++6 ce serait sympa de ta part de me l'envoyer avec le source.
    sinon il peut s'agir d'un mauvais paramètrage de VC++6 mais lequel?
    Merci d'avance

  • signaler à un administrateur
    Commentaire de dagosg le 09/04/2008 16:05:08

    Oups je me suis trompé, je voulais dire Builder C++ 6, et non VC++6.
    Ceci dit, c'est bizare que l'éditeur de lien ne voit pas les externals s'ils sont bien dans le '.lib' généré par 'lib.exe'.

  • signaler à un administrateur
    Commentaire de cartes1 le 09/04/2008 16:30:10

    Si le programme fonctionne avec BCB6 je vais essayer c'est toujours mieux que VS2008. Pour VC++6 je ne comprends pas non plus c'est la première fois que ça m'arrive. Il faudrait qu'ARNOTIC essaie son programme sur VC++6 et si ça marche me donner son paramètrage.
    Merci quand même.

  • signaler à un administrateur
    Commentaire de Arnotic le 09/04/2008 16:38:17 administrateur CS

    VC++ 6 à reléguer au musé...
    Si c'est une question de cout tu as VC++ 2008 Express qui est entièrement gratuit.

  • signaler à un administrateur
    Commentaire de cartes1 le 09/04/2008 19:58:00

    Non ce n'est pas une question de coût mais de goût. Tous mes programmes fonctionnent parfaitement avec VC6 sous toutes les versions de Windows et sans avoir besoin de FrameWorks. Le seul inconvénient pour moi c'est l'anglais que je maitrise assez mal mais je m'habitue. J'ai essayé VS 2008 express et je possède Vs 2005 standard mais je suis quand même revenu à VC6.

  • signaler à un administrateur
    Commentaire de BruNews le 09/04/2008 21:12:30 administrateur CS

    Les progs faits avec versions supérieurees à VC6 n'ont pas besoin de framework non plus.
    Le binaire obtenu est aussi sans aucune comparaison possible, VC6 employait encore toutes les vieilles instructions ASM de chaine et autres trucs obsolètes.
    Le même code recompilé avec VC++ 2008 est d'une efficacité redoutable comparé à celui que tu obtiendras.

  • signaler à un administrateur
    Commentaire de cartes1 le 10/04/2008 08:14:47

    Je suis d'accord avec toi BRUNEWS mais il est difficile pour moi de changer de compilateur car j'en suis satisfait.
    Par ailleurs j'ai trouvé la cause des erreurs sur VS 2008 : je n'avais pas modifier le paramètre "compilation sous : compiler comme code C".
    Je sais, je vais faire râler, mais, SVP, comment modifier ce fameux paramètre dans BCB6 ou dans VC6.
    A l'intention d'ARNOTIC, ton programme pourrait-il créer un PDF à partir d'un fichier BMP sorti d'un scanner ( au lieu d'un fichier texte).
    Amicalement

  • signaler à un administrateur
    Commentaire de dagosg le 10/04/2008 13:01:22

    Transforme ton bmp en jpg et insère le dans le document pdf avec les bonnes dimensions.
    Je te met mon projet BCB6 en accès dans la journée.
    ++

  • signaler à un administrateur
    Commentaire de Arnotic le 10/04/2008 14:56:06 administrateur CS

    C'est effectivement la solution (ce que je fais déjà pour certains documents officiel).

  • signaler à un administrateur
    Commentaire de dagosg le 10/04/2008 16:18:22

    voilà le projet BCB:
    http://dagosg.free.fr/pdf.rar
    Il te créé le fichier 'c:\essai.pdf'.
    Y'a une petite couche en plus pour faire des tableaux que j'utilise et que j'ai laissée.
    Tu as l'exemple pour insérer une image.
    Bon courage
    ++

  • signaler à un administrateur
    Commentaire de cartes1 le 10/04/2008 18:47:17

    Je te remercie pour ton aide DAGOSG, je vais essayer le programme ce soir.
    Amitiés

  • signaler à un administrateur
    Commentaire de Arnotic le 11/04/2008 10:32:06 administrateur CS

    Je viens de mettre à jour le code.

    Une nouvelle fonction permettant d'obtenir la taille du texte dans le contexte actuel (font, size, ...).
    Modification de la fonction cell. Maintenant la position et la taille de l'objet s'écrit sur des décimals et non plus sur des entiers de type DWORD.
    Correction d'un bug dans l'écriture des nombres decimaux dans le fichier PDF.

    Si jamais vous rencontrez des soucis n'hésitez pas.

  • signaler à un administrateur
    Commentaire de dagosg le 11/04/2008 10:50:14

    J'ai l'impression qu'il y a un problème à l'écriture du pdf lorsqu'il y a trop d'éléments à y insérer.
    L'écriture fonctionne mais génère une exception, qui m'empeche d'exécuter la suite de mon code.
    Pourrais-tu faire des essais là dessus.
    (en gros je dois ajouter environ 200 éléments sur une page)
    Merci

  • signaler à un administrateur
    Commentaire de Arnotic le 11/04/2008 10:58:51 administrateur CS

    Avec nouvelle version que je viens de poster ce matin ce problème est corrigé normalement. Tu as essayer ?

  • signaler à un administrateur
    Commentaire de cartes1 le 11/04/2008 11:33:25

    Bonjour  DAGOSG
    Je te remercie pour ton programme il fonctionne très bien en ce qui concerne le texte mais je n'ai pas trouvé l'exemple dont tu parlais pour insérer une image : doit-on remplacer le logo par l'image du scanner et effacer le code concernant tout le texte? mais alors quelles dimensions donner à cette image.
    amicalement

  • signaler à un administrateur
    Commentaire de dagosg le 11/04/2008 11:48:47

    Arnotic -> Non je n'ai pas essayé avec la nouvelle version. En fait le problème est un peu bizare. En changeant la font (Helvetica par Helvetica-Bold) ça fonctionne alors que je l'utilise sans erreur par ailleurs.

    cartes1 -> Il faut que tu te débrouille pour trouver la taille de l'image scannée. (cherche sur le forum ça doit bien se trouver...)
    Ensuite tu fait appel à cette fonction:
    SFPDF_Image(NOM_DE_TON_FICHIER_JPG, POS_X, POS_Y, TAILLE_X, TAILLE_Y)

    Tu n'es pas obligé de passer par 'PDF_CreerEntete', tu peux créer une fonction à ta sauce. C'était juste pour l'exemple.





  • signaler à un administrateur
    Commentaire de dagosg le 11/04/2008 11:59:31

    Bon bah je viens d'essayer la nouvelle version, j'ai une boite de diablogue avec des signes bizarres au moment de la génération et le fichier PDF n'est pas écrit.

  • signaler à un administrateur
    Commentaire de cartes1 le 12/04/2008 10:13:55

    Bonjour
    - pour DAGOSG : un grand merci pour ton aide, en tatonnant j'ai trouvé la taille à donner aux paramètres de la fonction SFPDF_Image. j'ai aussi trouvé par hazard ( je n'ai rien trouvé sur le net )le moyen de faire fonctionner le prog sous VC6 ( BCB6 est un très bon compilateur et de plus en français, mais je n'en ai pas l'habitude et donc je suis revenu à VC6) : il faut simplement modifier l'extension du fichier ( de CPP -> C), c'est très simple et ça prouve bien que ce compilateur n'est pas encore dépassé.
    - pour ARNOTIC : Le prog marche très bien sous VC6 dans l'ancienne version. J'ai essayé la dernière version et là ça coince sur la fonction "SFPDF_SetFont("Helvetica-Bold", 18)".
    Je voudrais de demander deux choses : d'une part pourrais-tu supprimer la référence au site
    sysfly.com sur le PDF (en effet je voudrais m'en servir pour des documents officiels).
                                        : d'autre part est-il possible de mettre ce programme en C++ et non en C pour pouvoir l'inclure dans mon logiciel utilitaire scanner et ainsi éviter d'utiliser ShellExecute?

  • signaler à un administrateur
    Commentaire de Arnotic le 12/04/2008 10:28:17 administrateur CS

    Si tu es prés à payer je te donne une version plus complète ainsi qu'une version pour Windows Mobile.

    Peut-importe le language utilisé pour la DLL. Tu peux trés bien compilé ton code en C++. Mon code est écrit en C pour l'exemple mais tu n'es pas obligé de faire de même. La DLL peut trés bien être utilisé en .NET et autre.

  • signaler à un administrateur
    Commentaire de cartes1 le 12/04/2008 11:20:45

    Quelles sont les modificatons à effectuer pour passer de C à C++? Si je force la compilation de ton code en C++ ça ne marche pas.

  • signaler à un administrateur
    Commentaire de Arnotic le 12/04/2008 13:25:32 administrateur CS

    Doit avoir des problèmes de cast ou truc de ce genre. Ecris donc ton code qui appelle la DLL comme tu as l'habitude.

  • signaler à un administrateur
    Commentaire de cartes1 le 15/04/2008 11:33:55

    Bonjour ARNOTIC
    Non ça ne marche pas quelquesoit la façon d'appeler la DLL.
    D'autre part peut-on avec ta librairie fusionner un ou plusieurs fichiers PDF?

    D'autre part une question plus générale mais qui est en rapport avec mon programme de scan -> pdf:
    - comment récupérer dans une variable le nom de fichier tapé par l'utilisateur lors de l'utilisation de la fonction "TWAIN_WriteNativeToFilename" de la librairie TWAIN EZTW32 (qui ouvre la fenêtre "enregistrer-sous")

    Code:
    case TW_APP_SAVEAS:

    result = TWAIN_WriteNativeToFilename(hdib, NULL);
    if (result < -1)
    {
    LoadString(hInst, IDS_ERR_WRITE, szMessage, sizeof szMessage);
    MessageBox(hwnd, szMessage, szAppName, MB_ICONINFORMATION | MB_OK);
    }
    break;
    Merci d'avance de vos réponses.

Ajouter un commentaire

Discussions en rapport avec ce code source

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS