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

Documents Java Discussion :

Imprimer PDF avec code barre en utilisant PDFBox


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut Imprimer PDF avec code barre en utilisant PDFBox
    Bonjour,

    J'ai une application développée en java qui utilise PDFBox 1.5.0 pour imprimer un PDF.
    Cela fonctionne pas trop mal sauf pour un PDF avec code à barre il transforme le code à barre par des chiffres.
    Je voudrais imprimer ces PDF avec le code à barre et non les chiffres.

    Si quelqu'un à une idée je suis preneur.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Bonjour,

    En faisant quelques recherches j'ai vu que peut être cela est du à la font de PDFBox qui ne tient pas compte de la font code barre.
    Est ce que vous savez comment ajouter cette font ?

    Merci

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Bonjour,

    Si cela peut aider j'ai utilisé javax.print pour faire mon impression.
    Le problème c'est que le docFlavor utilisé n'est pas toujours compatible avec toutes les imprimantes.
    Heureusement cela fonctionne pour moi.

    Malheureusement les paramètres envoyés à l'imprimante tel que le nombre de copie, ne sont pas transmis à l'imprimante j'ai donc contourné le problème en créant autant de FileInputStream que de copie nécessaire. Cela n'est pas super mais si quelqu'un a une idée je suis preneur.

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
     
     public static void imprimerPdf2(String pdfFile, int copiesToPrint, String printerName)
        throws PrintException {
        FileInputStream fis = null;
        boolean found = false;
        DocPrintJob printJob = null;
        int serv = -1;
        boolean copy = false;
        DocPrintJob[] tabPrintJob = null;
        SimpleDoc[] docs = null;
        FileInputStream[] tabFis = null;
        SimpleDoc doc = null;
     
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
     
        DocFlavor[] fla = null;
        PrintService[] service = PrinterJob.lookupPrintServices();
     
        for (int i = 0; (i < service.length) && !found; i++) {
          if (service[i].getName().equals(printerName)) {
            printJob = service[i].createPrintJob();
            found = true;
            serv = i;
          }
        }
     
        if (found) {
          PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
     
          fla = service[serv].getSupportedDocFlavors();
          for (int i = 0; i < fla.length; i++) {
            log.info("-------------INFO FLAVOR " + i + "------------------");
            log.info(fla[i].getMediaSubtype());
            log.info(fla[i].getMediaType());
            log.info(fla[i].getMimeType());
            log.info(fla[i].getRepresentationClassName());
          }
     
          if ((!service[serv].isDocFlavorSupported(flavor))) {
            log.severe("Flavor non supporte...");
          } else {
            JobName jobName = new JobName((new File(pdfFile).getName()), null);
            if (service[serv].isAttributeValueSupported(jobName, flavor, aset)) {
              aset.add(jobName);
            }
     
            PageRanges range = new PageRanges("1-10");
            if (service[serv].isAttributeValueSupported(range, flavor, aset)) {
              aset.add(range);
            }
            if (copiesToPrint > 1) {
              Copies copie = new Copies(copiesToPrint);
              SheetCollate collate = SheetCollate.COLLATED;
              if (service[serv].isAttributeValueSupported(copie, flavor, aset)
                  && service[serv].isAttributeValueSupported(collate, flavor, aset)) {
                aset.add(copie);
                aset.add(collate);
                copy = true;
              }
            }
     
            try {
              if (!copy) {
                tabPrintJob = new DocPrintJob[copiesToPrint];
                docs = new SimpleDoc[copiesToPrint];
                tabFis = new FileInputStream[copiesToPrint];
                for (int currentCopy = 0; currentCopy < copiesToPrint; currentCopy++) {
                  tabFis[currentCopy] = new FileInputStream(pdfFile);
                  tabPrintJob[currentCopy] = service[serv].createPrintJob();
                  docs[currentCopy] = new SimpleDoc(tabFis[currentCopy], flavor, null);
                }
                for (int currentCopy = 0; currentCopy < copiesToPrint; currentCopy++) {
                  tabPrintJob[currentCopy].print(docs[currentCopy], aset);
                }
              } else {
                fis = new FileInputStream(pdfFile);
                doc = new SimpleDoc(fis, flavor, null);
                printJob.print(doc, aset);
              }
            } catch (IOException ioe) {
              log.severe("Ioexception PrintPDF.imprimePDF2...");
              ioe.printStackTrace();
            } finally {
              try {
                if (fis != null) {
                  fis.close();
                  fis = null;
                }
                if (doc != null) {
                  doc = null;
                }
                if (tabFis != null) {
                  for (int i = 0; i < tabFis.length; i++) {
                    if (tabFis[i] != null) {
                      tabFis[i].close();
                      tabFis[i] = null;
                    }
                  }
                }
                if (tabPrintJob != null) {
                  tabPrintJob = null;
                }
                if (docs != null) {
                  docs = null;
                }
              } catch (IOException ioe) {
              }
            }
          }
        } else {
          log.severe("Probleme de recuperation de l'imprimante " + printerName + " !");
        }
      }
    Merci
    A+

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

Discussions similaires

  1. [AC-2010] Imprimer formulaire avec code Vba
    Par emilie27 dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/03/2012, 15h06
  2. [AC-2002] Access avec codes barre
    Par ramsestaa dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2011, 16h27
  3. Créer une étiquette avec code barre?
    Par yetanotherlogin dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/08/2009, 12h16
  4. imprimer PDF avec Firefox
    Par hektoumayo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/07/2008, 12h46
  5. [FPDF] Probleme avec code barre et fdpdf
    Par serwol dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/10/2006, 11h13

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