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

Dotnet Discussion :

Enregistrement de modèle d'impression en IPL depuis VB.net


Sujet :

Dotnet

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut Enregistrement de modèle d'impression en IPL depuis VB.net
    Bonjour,

    Je suis en train d’écrire un programme en VB afin d'imprimer des étiquettes de produits (référence + désignation + gamme + Code A Barre ou CAB).
    Ma base de donnée sous sql (logiciel Sage100) étant à reprendre, j'en ai extrait les données pour les mettre en forme et les envoyer à l'imprimante.
    J'ai déjà réussi à mettre ne forme mon étiquette et à l'envoyer sur l'imprimante mais le délai d'impression est long car l'imprimante ne stocke pas le modèle de l'étiquette afin de l'imprimer X fois. Le programme renvoi simplement X fois l'étiquette à l'imprimante.

    La solution semble de mémoriser l'étiquette dans l'imprimante. J'ai fait le tour de la documentation Intermec dans ce sens en prenant en compte les subtilités du langage IPL (Intermec Programming Language). Les champs à mémoriser sont simplement incluent dans des balises faites de caractères ascii non visibles.

    Jusque là se serait à peu près bon. Mais l'imprimante même si elle lit les données, elle ne semble pas les interpréter correctement. Et la je bloque.
    est-ce que le drivers interprète mes données, les modifies et renvoie un code faux à l'imprimante ? Dois-je utiliser un drivers générique (j'ai essayé sans succès) ?

    Pour simplifier les essais j'ai récupéré un code d'exemple d'étiquette de chez le fabricant contenant des caractères ascii non-imprimables que j'enregistre sur un fichier texte. Et j'envoie le fichier sur mon imprimante. Je me sers du debug.print afin de voir ce qu'il lit (et je ne vois donc pas les caractères non visibles).
    Comment être sûr que les caractères arrivent bien jusqu'à mon imprimante sans les sniffer ?
    Mon code de lecture de fichiers :

    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
    Public Class Form1
        Dim fileToPrint As System.IO.StreamReader
        Dim printFont As System.Drawing.Font
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim PrintPath As String = System.Environment. _
               GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
            fileToPrint = New System.IO.StreamReader(PrintPath & "\myfile2.txt") 'fichier sur le bureau contenant le texte'
            printFont = New System.Drawing.Font("Arial", 10)
            Debug.Print(fileToPrint.ReadToEnd)          'lecture du fichier'
            PrintDocument1.Print()                      'impression du fichier'
            'j imprime alors une étiquette blanche'
            fileToPrint.Close()
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As  _
           System.Drawing.Printing.PrintPageEventArgs) Handles _
           PrintDocument1.PrintPage
            Dim linesPerPage As Single = 0
            Dim yPos As Single = 0
            Dim count As Integer = 0
            Dim leftMargin As Single = 0 'e.MarginBounds.Left   mises à 0 volontairement'
            Dim topMargin As Single = 0 'e.MarginBounds.Top     mises à 0 volontairement'
            Dim line As String = Nothing
            linesPerPage = e.MarginBounds.Height / printFont.GetHeight(e.Graphics)
            While count < linesPerPage
                line = fileToPrint.ReadLine()
                If line Is Nothing Then
                    Exit While
                End If
                yPos = topMargin + count * printFont.GetHeight(e.Graphics)
                e.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, _
                   yPos, New StringFormat())
                count += 1
            End While
            If Not (line Is Nothing) Then
                e.HasMorePages = True
            End If
        End Sub  
    End Class
    Je mets aussi en pj mon code exemple en IPL dans un fichier txt.

    Mon problème fait-il craquer chez quelqu'un la petite étincelle qui me fait grandement défaut ?

    Dans touts les cas, merci de votre aide à tous.

    Aurélien
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/12/2014, 16h23
  2. Réponses: 8
    Dernier message: 01/09/2010, 21h45
  3. Enregistrer la sortie vidéo d'un PC depuis un autre
    Par vbrabant dans le forum Périphériques
    Réponses: 8
    Dernier message: 17/05/2008, 02h40
  4. Réponses: 1
    Dernier message: 25/03/2008, 12h09
  5. [VBA-W] enregistrement de modèle de document
    Par Speedrman dans le forum VBA Word
    Réponses: 3
    Dernier message: 03/04/2007, 20h20

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