IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Freehep dessin vectoriel et PDF


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut Freehep dessin vectoriel et PDF
    Bonjour,

    je cherche à faire du dessin vectoriel dans un PDF afin d'un mettre des dessins et du texte.
    J'ai testé plusieurs lib mais elles ne permettaient pas de mettre du texte.

    J'ai atterri sur freehep et sa multitude de JAR associés.
    Déjà à ce niveau je ne suis pas sûr d'avoir tout bien paramétré correctement dans mon projet. (Si tu l'utilises et que tu peux m'aider ce serait génial !)

    Ensuite j'ai enfin réussi à générer un PDF.
    Sauf que je ne pige pas bien le fonctionnement, j'ai des blancs pas possible en haut et en bas de ma page (1/6 de la page en haut, idem en bas et sur les coté je dirais 1cm)
    Le dessin donc ne part pas d'en haut, et je ne comprends pas le lien avec l'objet dimension dans cette fenêtre de dessin.

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    public static void main(String[] args) throws FileNotFoundException {
    		// Comment faire pour le format A3 du pdf
    		PDFGraphics2D graphics = new PDFGraphics2D(new FileOutputStream(FILE_OUT), 
    													new Dimension(200, 200));
     
    		Properties properties = new Properties();
           // properties.setProperty(PDFGraphics2D.ORIENTATION, "PORTRAIT");
           // properties.setProperty(PDFGraphics2D.PAGE_SIZE, "A3");
            properties.setProperty(PDFGraphics2D.PAGE_MARGINS, "0");
     
     
    		graphics.startExport();
    		graphics.setStroke(new BasicStroke(3));
    		graphics.setPaintMode();
    		graphics.setClip(0, 0, 297, 420);
    		//graphics.setBackground(Color.GRAY);
    		//graphics.setProperties(properties);
     
    		graphics.drawLine(0,0,200.0,0);
    		graphics.setColor(Color.GREEN);
    		graphics.drawLine(0, 10, 300, 10);
    		graphics.setColor(Color.CYAN);
    		graphics.drawLine(0, 20, 350, 20);
    		graphics.setColor(Color.black);
    		graphics.drawLine(0, 30, 570, 30);
     
    		graphics.setColor(Color.gray);
    		graphics.drawLine(1.0,-145.0,200.0,250.0);
    		graphics.drawLine(1.0,1.0,200.0,250.0);
    		graphics.drawLine(1.0,100.0,200.0,250.0);
    		graphics.endExport();
    S'il y a quelqu'un qui a déjà utilisé cet lib et peux me donner des conseils sur comment gérer les différents formats (A3-A4 ....) et bien faire partir les dessins avec l'axe x,y (0,0) en haut à gauche comme sur d'autres lib que j'ai pu trouver je suis preneur.

    Merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    J'ai utilisé freehep y'a bien dix ans, mais j'avais abandonné cette API parce que super boguée, lente, et plus supportée. Et l'orientation Java2D était séduisante au début pour éviter d'écrire le code en double entre impression et export PDF, surtout qu'à l'époque on n'avait pas de lecteur PDF systématique sur les machine, mais elle s'est avérée assez limitée et les problèmes rencontrés étaient vraiment très gênants (de mémoire, si je me souviens bien, on avait des décalages inattendus (translations), et ça ressemble assez à ce que tu décris).

    Des bibliothèques très bien faites comme PDFBox (Apache) ou IText proposent des solutions alternatives (on ne fait pas du Java2D, mais on peut si on veut) mais beaucoup plus complète et on trouve beaucoup plus de documentation et d'exemples.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Merci pour ta réponse.

    La dernière release date de 2014, j'imagine que certaines choses on du être corrigé !

    avec les bibli que tu proposes ca fait du vectoriel et mélange dessin, ajout d'image, et de texte vectoriel ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par zulot Voir le message
    avec les bibli que tu proposes ca fait du vectoriel et mélange dessin, ajout d'image, et de texte vectoriel ?
    Oui.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Je regarde actuellement pdfbox d'appache qui m'a amené vers un lib graphics2d par rotor qui permettrait de dessiner, et sur une autre lib openhtmltopdf qui permet du texte enrichie via html ...
    Pour l'instant je fais mon trie, mais je repars pour la 3ème fois de zéro !

    Je n'ai pas regardé IText encore.

    Si tu as des url avec des exemples de code je suis preneur.
    Mes trois besoin sont :
    • dessiner des lignes (path) paramétrables, et autre forme géometrique
    • ajouter du texte en changeant la forme et la position
    • ajouter de petites images à certaines positions

    Tout ca en vectoriel dans un PDF

    Choisir le format du PDF est aussi important. (A3-A4 ... pas de bordure)

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Pour PDFBOX, la bibliothèque dont tu parles permet d'utiliser la même API que Graphics2D, mais il y a une API standard tout à fait suffisante pour dessiner en vectoriel (voir PDFGraphicsStreamEngine). Sur Tutorials Point, il y a pas mal de tutoriels comme "Creating Boxes in a PDF Document" par exemple, qui montre comment récupérer le content stream et créer un rectangle. La doc de l'API est pas mal aussi pour voir ce qu'on peut faire : https://pdfbox.apache.org/docs/2.0.8...entStream.html. Le tracé de ligne passe par moveTo et lineTo, des méthodes assez classiques dans ce genre de systèmes (qu'on retrouve dans la classe Java Path2D par exemple). Il y a aussi des packages d'exemples (notamment un qui étend le "Stream Engine").

    Pour IText, il y a le site d'origine qui propose de très bons et nombreux tutoriels (https://developers.itextpdf.com/cont...ext-5-examples, https://developers.itextpdf.com/exam...ics2d-examples, https://developers.itextpdf.com/exam...ion/chapter-15...).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. [Lazarus] Dessin vectoriel ou MetaFileCanvas
    Par pdufresn dans le forum Lazarus
    Réponses: 6
    Dernier message: 01/06/2006, 10h34
  2. Dessin vectoriel 2D : librairies, docs, etc.
    Par lio33 dans le forum MFC
    Réponses: 3
    Dernier message: 24/05/2006, 13h43
  3. Dessin vectoriel et PHP
    Par Pagan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/05/2006, 22h32
  4. Dessin vectoriel avec Python
    Par cboudy dans le forum PyQt
    Réponses: 2
    Dernier message: 04/04/2006, 21h38
  5. Dessin vectoriel
    Par Speed41 dans le forum Langage
    Réponses: 6
    Dernier message: 16/08/2004, 07h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo