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


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut Imprimer . pdf
    Bonjour les dév
    J'utilise cette classe pour imprimer les fichier .txt.
    Code java : 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
    package Defaut;
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
     
    import javax.print.Doc;
    import javax.print.DocFlavor;
    import javax.print.DocPrintJob;
    import javax.print.PrintException;
    import javax.print.PrintService;
    import javax.print.PrintServiceLookup;
    import javax.print.ServiceUI;
    import javax.print.SimpleDoc;
    import javax.print.attribute.DocAttributeSet;
    import javax.print.attribute.HashDocAttributeSet;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
     
    public class impDOC {
     
    	public impDOC (String adrs, String nom)	{
    		String filename = (adrs+"\\" +nom);
            PrintRequestAttributeSet pras = new
    HashPrintRequestAttributeSet();
            DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
            PrintService printService[] =
    PrintServiceLookup.lookupPrintServices(flavor, pras);
            PrintService defaultService =
    PrintServiceLookup.lookupDefaultPrintService();
            PrintService service = ServiceUI.printDialog(null, 200,
    200,printService, defaultService, flavor, pras);
            if (service != null) {
                DocPrintJob job = service.createPrintJob();
                FileInputStream fis;
                try {
                    fis = new FileInputStream(filename);
                    DocAttributeSet das = new HashDocAttributeSet();
                    Doc doc = new SimpleDoc(fis, flavor, das);
                    try {
                        job.print(doc, pras);
                        try {
                            Thread.sleep(10000);
                        } catch (InterruptedException ex) {
                            ex.printStackTrace();
                        }
                    } catch (PrintException ex) {
                        ex.printStackTrace();
                    }
                } catch (FileNotFoundException ex) {
                    ex.printStackTrace();
                }
            }
    	}
    }
    Mais ça ne fonctionne pas pour les fichiers pdf : (
    Savez-vous pourquoi ?

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Le fichier texte, comme son nom l'indique, a un "format texte" : il peut donc directement être envoyé à l'imprimante pour impression.

    Un fichier PDF, en revanche, est codé dans un fichier binaire : il n'est absolument pas lisible dans un éditeur de texte (Notepad par exemple). Avant de l'imprimer, il faut donc décoder ce format binaire.

    C'est ce décodage qui manque actuellement à ton code. Pour cela, tu devras certainement passer par une librairie externe (dont tu trouveras facilement une liste par une recherche).
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311

  4. #4
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Coucou
    Voici une classe que j'utilises pour l'impression des fichiers pdf.
    Code java : 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
    115
    116
    117
    118
    119
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import javax.print.PrintService;
    import javax.print.PrintServiceLookup;
     
    /*
     * Created on 23 févr. 2005
     *
     * TODO Impression de PDF en tache de fond
     */
     
    /**
     * @author Waldo2188
     *
     */
    public class ImpressionPDF {
    	private String A;
    	private String adressF;
     
     
     
     
    	//Constructeur 
    	public ImpressionPDF(String adressF){
    		this. adressF= adressF;
    		IMPRIME();
    	}
    	public   void IMPRIME() {
     
     
    		 getAdresse () ;
    		 final String PATH_ADOBE_READER =A;
    		 final String ADOBE_READER_PRINT_COMMAND = "/t";
    		 final String SLASH = "/";
    		 final String QUOTE = "\"";
    		 final String SPACE = " ";
    		 final String pFile =adressF ;
    	PrintService service = PrintServiceLookup.lookupDefaultPrintService();//localisation de l'imprimante par défaut
     
    //		  Commande à exécuter
    		 String lCommand = QUOTE + PATH_ADOBE_READER + QUOTE + SPACE +
    		 ADOBE_READER_PRINT_COMMAND + SPACE +
    		 QUOTE + pFile + QUOTE + SPACE +
    		 QUOTE + service.getName() + QUOTE;//service.getName() c'est l'imprimante par defaut
     
     
    		 System.out.println("[printPDF] Command to be executed : " + lCommand);
     
    		 Process lAdobeProcess = null;
     
     
    		 try
    		 {
     
    //		  Execute Adobe Reader command "/t" (imprime et ferme)
    		 lAdobeProcess = Runtime.getRuntime().exec(lCommand);
     
     
     
    		 //dors pendant 2.4seconde avant de fermer la fenêtre de Acrobat Reader
    		 Thread.sleep(24000);
    		 lAdobeProcess.destroy();
    		 }
    		 catch (Exception e)
    		 {
    		 System.err.println("[printPDF] Error printing PDF : " + pFile);
    		 e.printStackTrace();
    		 }
    		 finally
    		 {
    		 	System.out.println("lAdobeProcess.toString()");
    		 if (lAdobeProcess != null)
    		 {
    		 	//destruction de l'instance de Acrobat Reader
    		 	lAdobeProcess.destroy();
    		 	lAdobeProcess = null;
    		 }
    		 }
     
    	}
     
     
     
     
     
    	void getAdresse () {
     
     
    		int i=0;
    		String url = "jdbc:odbc:MBRD"; 
    		Connection con = null; 
     
    		try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    		con = DriverManager.getConnection(url,"",""); 
     
     
    		Statement requete = con.createStatement(); 
    		ResultSet r = requete.executeQuery("select * from programme where programme = 'Acrobate reader'");
    		while (r.next()){
    			A=r.getString(2); 
    		}
    		}catch(Exception e1) { e1.printStackTrace(); System.out.println("Get_FS!!!");  } 
     
    		finally { 
    			 System.out.println(A);
    			 System.out.println(adressF);
    			try {con.close();} 
    			catch(SQLException e1) {e1.printStackTrace();} 
    		}
     
     
     
    	}
    }
    Super ; )

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

Discussions similaires

  1. [WD16] Imprimer PDF en boucle
    Par draco951 dans le forum WinDev
    Réponses: 4
    Dernier message: 14/09/2011, 10h34
  2. Imprimer PDF côté client
    Par huggy49 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/03/2011, 15h23
  3. imprimer PDF avec Firefox
    Par hektoumayo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/07/2008, 12h46
  4. Transformer un Javadoc en forme imprimable(PDF,RTF,DOC..)
    Par sniperseb dans le forum NetBeans
    Réponses: 1
    Dernier message: 10/03/2008, 19h39
  5. imprimer pdf depuis serveur
    Par OSdave dans le forum Documents
    Réponses: 8
    Dernier message: 22/01/2007, 14h11

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