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

Windows Forms Discussion :

Retour à la ligne avec PdfSharp


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut Retour à la ligne avec PdfSharp
    Bonjour à toutes et à tous,

    Mon problème est simple peut être pour certains mais bloquant pour moi.

    Je dois effectuer avec pdfSharp une écriture donc avec un objet graphique gfx on fait un simple gfx.drawString("blabla", les autres paramètres), le problème se pose lorsque je souhaite faire un retour à la ligne.
    (Oui je vous vois venir pourquoi faire compliqué quand on peux faire simple.)

    J'ai essayé avec les choses suivantes mais sans succès :
    - vbcrlf (on est en c#donc d'entrée de jeu écarté)
    - \r ou \n ou les deux \n\r
    - avec une correspondance Char(13) soit la fin de paragraphe comme utilisé en mode dos.
    - le fameux <br> qui ne fonctionne pas non plus.

    J'ai l'impression que

    Il n'y as pas de propriétés nextline, ce qui est gênant dans ce cas précis.
    Et je ne trouve pas de solution alors avis aux amateurs qui auraient une idée...

    Je suis tout ouie !

    Par avance merci pour moi même
    Digital D.N.A

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    C'est le meme principe que quand tu fais un DrawString a partir d'un Graphics GDI

    Le principe est de definir le rectangle dans lequel devra s'écrire le texte.
    Tu passe ce rectangle à la methode DrawString
    Le retour a la ligne se fera automatiquement

    Surtout n'essaye pas des cochonceté du genre inserer toi meme un NewLine sauf si tu veux forcer des passage a la ligne a des endroits précis du texte

    Cela étant le "\n" fonctionne tres bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string Exp = String.Concat(UB.OwnerFirstName, " ", UB.OwnerLastName, "\n", UB.HouseNumber, " ", UB.Street, " ", UB.Bte, "\n", UB.ISOCC);
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut
    Bonjour Olibara et merci de ta réponse malheureusement je me dois de te contredire :

    Avec GDI+ oui le \n fonctionne, malheureusement dans PdfSharp le retour à la ligne automatique ne s'éffectue pas, il déborde allégrement du rectangle (Xrect pour les fans) dans lequel il est déclaré ensuite le \n n'est pas interprété pourtant je n'ai mis aucun caractère d'échappement, donc on se retrouve avec un joli : le texte 1 \n le texte 2.

    Bref en attendant j'ai triché avec un décalage de coordonnées et un second drawstring.
    Dommage, mais bon.


    Mes collègues ont essayés également et chez certains cela fais exactement la même chose pourtant c'est la version 1.31 sur tous les projets.
    Digital D.N.A

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Pas du tout ca marche tres bien !
    C'est toi qui doit faire une erreur qq part !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        XTextFormatter tf;
          gfx = XGraphics.FromPdfPage(page);
          tf = new XTextFormatter(gfx);
     
          double c = 11;
          XRect r1 = new XRect(AdrDestRect.Left + 5, AdrDestRect.Top + c, AdrDestRect.Width, AdrDestRect.Height - c);
          string adr =  String.Concat(UB.OwnerFirstName, " ", UB.OwnerLastName, "\n", UB.HouseNumber, " ", UB.Street, " ", UB.Bte, "\n", UB.ISOCC);
          tf.DrawString(adr, fAr9, XBrushes.Black, r1, XStringFormat.TopLeft);
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut
    Ha hé bien voila maintenant cela fonctionne. Il n'y avais aucune erreur ! Juste une chose en supplément dans ton code ... le XTextFormatter et ça je ne pouvais pas le sucer de mon pouce. Merci pour la solution
    Digital D.N.A

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut

    Les phrase fétiches d'un bon informaticien

    Ha hé bien voila maintenant cela fonctionne. Il n'y avais aucune erreur (mais ca marchait pas .... )
    Traduction
    J'avais tout fait mais j'ai juste pas fait ce qu'il faut faire
    Ou
    On n'a rien changé et ca ne marche plus
    Et encore
    "[Normalement] ca devrait marcher"
    Ou
    C'est pas un bug c'est juste une bete erreur
    Chasser ces paradigmes aident a mieux avancer
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur / DBA
    Inscrit en
    Septembre 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur / DBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 133
    Points : 152
    Points
    152
    Par défaut
    Oui soit mais au sens propre du terme l'ignorance n'est pas une erreur D'ailleurs puisque tu m'a avancé je vais ouvrir un second post pour aller plus loin ...
    Digital D.N.A

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gérer les retour à la ligne avec VBA (marge de droite)
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2008, 18h33
  2. Retour à la ligne avec fichier à accès aléatoire
    Par mehdiyou dans le forum VB.NET
    Réponses: 11
    Dernier message: 29/04/2008, 14h57
  3. retour à la ligne avec une zone de texte
    Par samia21 dans le forum IHM
    Réponses: 10
    Dernier message: 28/04/2008, 16h28
  4. Retour à la ligne avec Form
    Par ClaudeP dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/05/2007, 08h42
  5. Problème retour à la ligne avec textarea
    Par finalfx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/05/2006, 18h59

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