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

WinDev Discussion :

Itextsharp apposer un rectangle blanc [WD19]


Sujet :

WinDev

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut Itextsharp apposer un rectangle blanc
    Bonjour
    Je voudrais utiliser itextsharp pour masquer une information (de plusieurs lignes) sur un pdf et écrire autre chose à la place (renvoi de courrier en automatique, donc refaire le pavé adresse sur plusieurs lignes)
    J'ai vu sur le forum comment mettre un filigrane (c'est super)

    Sauf que là je ne veux pas qu'on puisse voir les informations au dessous et que mon information ne sera probablement pas aussi grande que celle à remplacer.

    Savez-vous comment faire ?

    Merci d'avance

    Gancau

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 325
    Points : 3 838
    Points
    3 838
    Par défaut
    Bonjour,

    Ce sujet va m'intéresser car j'ai plus ou moins la même chose à effectuer : un formulaire PDF à pré-remplir.
    Ce que je comptais faire, était de mettre le PDF en filigrane et d'ajouter des libellés aux endroits que je souhaite remplir.

    As-tu déjà essayé cette méthode ?

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour Lo²
    non, j'ai ajouté du texte aux endroits souhaités, mais en fond j'ai toujours les informations d'avant.
    Or il faut dans mon cas que j'arrive à "effacer" les données dessous (voire un peu plus...) j'ai essayé aussi la methode de mettre du fond blanc mais Windev me met une erreur quand je passe le paramètre 'COLOR.WHITE' (dans l'assemblage.net, je trouve pourtant bien la classe Color et ses constantes) ou 'BaseColor.White" (normal, ne se trouve pas dans l'assemblage...) le point est mis en erreur (opérateur interdit)

    Gancau

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    C'est bon j'ai trouvé
    J'utilise la procédure ColleTampon ci-dessous

    en entrée, j'ai un fichier existant (FichierIn ), en sortie, je créé le fichier de zéro (FichierOut) avec le fichier in + un tampon (pclRectangle) de la couleur désirée (CouleurTampon) et du texte à l'intérieur(sTexte).
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    PROCEDURE ColleTampon(FichierIn,FichierOut,sTexteTampon,CouleurTampon est une WL.Couleur,PosXGauche,PosYbas,posXDroit,PosYHaut)
     
    //sTexte est une chaîne 
    nPositionX est un entier 
    nPositionY est un entier 
     
     
    nCoulB est un entier = CouleurTampon..Bleu
    nCoulR est un entier = CouleurTampon..Rouge
    nCoulV est un entier = CouleurTampon..Vert
     
     
    MonFichierPDF est un PdfReader(FichierIn)
    fluxSortie est un FileStream(FichierOut, FileMode.OpenOrCreate)
    pdfStamper est un PdfStamper(MonFichierPDF,fluxSortie)
    pclPageRectangle est un "itextsharp.text.rectangle" dynamique = MonFichierPDF.GetPageSizeWithRotation(1)
     
    pdfData est un PdfContentByte dynamique = pdfStamper.GetOverContent(1)
     
    //create fontsize for watermark
    pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 10);
     
    //create new graphics state and assign opacity
    graphicsState est un PdfGState() 
    graphicsState.FillOpacity = 1
     
    //set graphics state to pdfcontentbyte
    pdfData.SetGState(graphicsState);
     
    //définit une couleur
    pclCoul est un "itextsharp.text.Color" dynamique 
    pclCoul = allouer un "itextsharp.text.Color" (nCoulR,nCoulV,nCoulB)
     
    //définit un rectangle
    pclRectangle est un "itextsharp.text.rectangle" dynamique 
    pclRectangle = allouer un "itextsharp.text.rectangle" (PosXGauche,posXDroit,PosYbas,PosYHaut)
    pclRectangle.BackgroundColor = pclCoul
    pdfData.Rectangle(pclRectangle)
     
    nPositionX = PosXGauche + 30
    nPositionY = PosYHaut - 45
     
    //ecrit une ligne pour chaque ligne de mon texte
    POUR TOUTE CHAÎNE sLigneTampon DE sTexteTampon SEPAREE PAR RC
    	pdfData.BeginText();
    	pdfData.ShowTextAligned(Element.ALIGN_LEFT,sLigneTampon,nPositionX,nPositionY,0)
    	nPositionY -= 12
    	pdfData.EndText()
    FIN
     
    //close stamper and output filestream
    pdfStamper.Close()
    fluxSortie.Close()

    Bon dev
    Gancau


    Note : j'ai utilisé itextsharp.dll version 4.1.6.0

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 325
    Points : 3 838
    Points
    3 838
    Par défaut
    ok super

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 06/06/2006, 18h51
  2. Dessiner un rectangle avec bords et texte ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 18h17
  3. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 10h44
  4. Réponses: 9
    Dernier message: 11/03/2003, 13h22
  5. Réponses: 4
    Dernier message: 04/03/2003, 02h05

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