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

C# Discussion :

Générer et Imprimer un document au centimètre près


Sujet :

C#

  1. #1
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut Générer et Imprimer un document au centimètre près
    Salut à tous !

    De nouveau sur un projet dont le rôle est de générer et d'imprimer des étiquettes sur une planche prédéfinie, je suis bloqué à la phase "impression".

    En fait, pour faire simple, je cherche à imprimer des étiquettes taille 45,7mm par 21,2mm sur une planche A4 possédant 48 étiquettes margées de 10mm à gauche et à droite, et de 210mm en haut et en bas. Chaque étiquettes sont espacées verticalement de 2,5mm et sont au nombre de 4 par lignes.

    Ces étiquettes possèderont un code barres et de sa valeur textuelle en dessous.

    J'ai tenté de générer ces étiquettes sur un classeur Excel préconfiguré, cependant, pour que le code barres apparaisse il faut au préalable que la police d'écriture des codes barres soit installée sur l'ordinateur; ça ressort des smileys sur une machine ne possédant pas la bonne police d'écriture.

    Comment faire pour générer le tableau d'étiquetage imprimable sous forme d'image, ou alors sous forme PDF, prenant précisément les configurations de positionnement des étiquettes ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,
    J'ai tenté de générer ces étiquettes sur un classeur Excel préconfiguré, cependant, pour que le code barres apparaisse il faut au préalable que la police d'écriture des codes barres soit installée sur l'ordinateur; ça ressort des smileys sur une machine ne possédant pas la bonne police d'écriture.
    et en faisant un enregistrement au format PDF depuis ton Excel, ca donne quoi ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Moi, je verrai plutôt la génération des étiquettes en format SVG, toutes les imprimantes sont capables d'interpréter du svg.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je ne suis pas expert en C#, mais je couperais au plus court; même si cela implique une perte de performance et une augmentation des besoins en mémoire. Je ferais mes étiquettes, soit en vraies étiquettes, soit en feuilles imprimées avec Word. (Word se fout de savoir si ce sont des vraies étiquettes qui sont dans l'imprimante). Autant Word qu'Excel peuvent être pilotés à partie de VS. Et Word va te simplifier la vie avec les dimensions d'étiquette et les marges.

    Tu peux te créer un canevas de procédure (que tu vas devoir adapter un brin pour certains noms d'objets) en enregistrant une macro de création d'étiquettes selon tes besoins dans Word.

    Au cas où j'aurais mal compris et que toutes tes étiquettes sont différentes, tu peux faire un publipostage dans Word. Pas besoin que ce soient des lettres pour "publiposter".
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,
    et en faisant un enregistrement au format PDF depuis ton Excel, ca donne quoi ?
    Je n'ai pas essayé. C'est dans le workbook.SaveAs() ça non ?

    Citation Envoyé par psychadelic Voir le message
    Moi, je verrai plutôt la génération des étiquettes en format SVG, toutes les imprimantes sont capables d'interpréter du svg.
    Peux-tu m'en dire plus ? Comment je vérifie les marges avec du SVG ?

    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Je ne suis pas expert en C#, mais je couperais au plus court; même si cela implique une perte de performance et une augmentation des besoins en mémoire. Je ferais mes étiquettes, soit en vraies étiquettes, soit en feuilles imprimées avec Word. (Word se fout de savoir si ce sont des vraies étiquettes qui sont dans l'imprimante). Autant Word qu'Excel peuvent être pilotés à partie de VS. Et Word va te simplifier la vie avec les dimensions d'étiquette et les marges.

    Tu peux te créer un canevas de procédure (que tu vas devoir adapter un brin pour certains noms d'objets) en enregistrant une macro de création d'étiquettes selon tes besoins dans Word.

    Au cas où j'aurais mal compris et que toutes tes étiquettes sont différentes, tu peux faire un publipostage dans Word. Pas besoin que ce soient des lettres pour "publiposter".
    Le problème c'est, encore une fois, pour le choix de la police. Word, comme Excel, nécessite forcément que la police soit installée sur la machine afin de l'interpréter. Or, là, j'ai besoin que la dite application soit 100% portable.

    Comment font les éditeurs de feuillets traditionnels en administration pour générer leur impréssions "au poil de fion" ? Ils ont quand même pas fait du HTML puis imprimé 40'000 fois jusqu'à tomber juste, si ?

  6. #6
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut
    En effectuant quelques recherches, je suis tombé sur une vidéo de ce genre :



    C'est exactement ce que je souhaite faire. Le problème c'est que ce genre de technologie ne dois plus exister, j'ai beau chercher sur mon Visual Studio, je n'ai aucun objet générateur de rapports.

    Quelqu'un a une idée ?

    EDIT :
    J'ai fait une recherche sur le "crystal reports" il s'avert que c'est un bout de code payant.
    Existe-t'il dans le même genre, mais gratuit par hasard ?

  7. #7
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par Altor Voir le message
    Peux-tu m'en dire plus ? Comment je vérifie les marges avec du SVG ?
    C'est 2 problèmes différents.
    Je ne réponds ici qu'a la partie = produire une image de BarCode.

    pour que le code barres apparaisse il faut au préalable que la police d'écriture des codes barres soit installée sur l'ordinateur; ça ressort des smileys sur une machine ne possédant pas la bonne police d'écriture.

    Comment faire pour générer le tableau d'étiquetage imprimable sous forme d'image
    apres l'autre question c'est quel type de BarCode?
    Codabar, Code 11, EAN-13 ou 8 ? UPC-E ? Code 128 ? etc.. il existe une vingtaine de BarCode...

    https://en.wikipedia.org/wiki/Intern...Article_Number
    https://en.wikipedia.org/wiki/Code_128

    http://www.makebarcode.com/specs/speclist.html
    https://www.scandit.com/types-barcod...right-barcode/
    https://www.scandit.com/types-of-bar...-14-or-code39/

    le format SVG n'est jamais rien d'autre qu'une image vectorielle au format text devant respecter des règles XML.
    et un barcode n'est qu'une suite de traits verticaux dont on trouve facilement les regles d'écriture pour leur épaisseurs et espacement

    un dessin tres simple pour comprendre => https://en.wikipedia.org/wiki/Intern...EAN-13_barcode

    il y a aussi un exemple de génération avec une macro vba : https://fr.wikipedia.org/wiki/Code-b...ogrammation_en...

    Apres libre à toi d'adapter ce générateur dans ton soft préféré :
    word ou Excel et n’importe quel logiciel logiciel même en C# ou python ou NodeJS et même directement dans une macro Inkscape

    Sinon il existe aussi des librairies toutes faite dans X langage pour le faire, il existe aussi des fontes BarCode...

    exemple de librairie (

    https://codepen.io/FesslerForge/pen/jHkaC
    ( qui utilise https://d3js.org/d3.v3.min.js => https://github.com/d3/d3 // mais il doit y en avoir d'autres parmis les 70 millions de libraires possibles sur nodeJS)

    Pour les marges et autres problèmes de gestion d'imprimante, tu devra jouer avec les primitives de leur gestion liées au soft que tu aura choisi.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  8. #8
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut
    Ou alors je draw les étiquettes au format image que je "colle" dans un word pré-configuré au niveau taille et marge de façon à ce que la taille corresponde à l'étiquette et c'est ça que je fais ouvrir a l'utilisateur après édition, ça pourrait le faire.

    Reste plus qu'à trouver comment insérer une image dans Word via C# et configurer sa taille

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    astuce pour retrouver rapidement le code qu'il te faut : utilise l'enregistreur de macros VBA sous Word, ca te donnera le nom des méthodes pour l'appliquer très simplement en C#
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    Septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 103
    Points : 235
    Points
    235
    Par défaut
    Coucou !

    Du coup j'ai finalement utilisé Excel : j'ai ajouté un contrôle de police au démarrage de l'application qui vérifie que la police code barre utilisée est installée ou pas sur le poste et qui l'installe le cas échéant.

    Comme ça, je génère les étiquettes sur un fichier excel pré-configuré pour et ça fonctionne.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/02/2009, 13h38
  2. Réponses: 6
    Dernier message: 06/04/2006, 10h43
  3. [C#][1.1] Imprimer des documents RTF
    Par SmokE dans le forum ASP.NET
    Réponses: 5
    Dernier message: 26/12/2005, 09h47
  4. Imprimer un document publisher sous access
    Par alkmehd dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2005, 12h25
  5. [stratégie][débutant]Comment imprimer un document ?
    Par Kcirtap dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/07/2005, 11h12

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