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 :

convertir un fichier RTF en PDF


Sujet :

Documents Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut convertir un fichier RTF en PDF
    Bonjour a tous,

    Le code suivant construit, un fichier pdf a partir du fichier RTF, mais il est vide :

    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
     import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import javax.swing.JEditorPane;
    import javax.swing.text.rtf.RTFEditorKit;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.PageSize;
    import com.lowagie.text.pdf.DefaultFontMapper;
    import com.lowagie.text.pdf.PdfContentByte;
    import com.lowagie.text.pdf.PdfGraphics2D;
    import com.lowagie.text.pdf.PdfWriter;
     
    public class RtfTest {
     
     public static void main(String agrv[]) {
    try {
     FileInputStream fis = new FileInputStream("C:/LICENSE.rtf");
     
     RTFEditorKit rtfEditorKit = new RTFEditorKit();
     JEditorPane jEditorPane = new JEditorPane();
     
     jEditorPane.setEditorKit(rtfEditorKit);
     rtfEditorKit.read(fis, jEditorPane.getDocument(), 0);
     
     Document document1 = new Document(PageSize.A4, 50, 50, 50, 50);
     FileOutputStream fos = new FileOutputStream("C:/graphics2D.pdf");
     
     PdfWriter writer = PdfWriter.getInstance(document1, fos);
     
     document1.open();
     
     PdfContentByte cb = writer.getDirectContent();
     cb.saveState();
     DefaultFontMapper mapper = new DefaultFontMapper();
     
    PdfGraphics2D g2 = (PdfGraphics2D) cb.createGraphics(612, 792, mapper);
     
     jEditorPane.paint(g2);
     
     g2.dispose();
     document1.close();
     fos.close();
     writer.close
    Merci de votre aide.

    Lokmane

  2. #2
    Membre averti
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Points : 401
    Points
    401
    Par défaut
    Citation Envoyé par lokmane Voir le message
    writer.close
    Ça n'a peut-être rien à voir mais c'est pas :

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Orian Voir le message
    Ça n'a peut-être rien à voir mais c'est pas :
    merci, mais c'est uniquement en copiant le code que j'ai oublie les parentheses.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Points : 71
    Points
    71
    Par défaut
    Hello developpez.net

    Lokmane, est ce que tu aurais trouvé la solution à ton problème ??? STP

    En espérant que tu sois toujours dans les parages !!!

    Ou si quelqu'un d'autre à la solution, ce serait avec plaisir !!

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    Peut-être question bête mais...

    A quel moment tu déverses le contenu de rtfEditorKit dans ton document1 PDF ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Points : 71
    Points
    71
    Par défaut
    Voici mon code !

    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
     
    RTFEditorKit rtf = new RTFEditorKit();
    		JEditorPane editor = new JEditorPane();
    		editor.setEditorKit( rtf );
    		FileInputStream fi = new FileInputStream( "0000195110.rtf" );
    		rtf.read( fi, editor.getDocument(), 0 );
    try{
    			com.lowagie.text.Document document1 = new com.lowagie.text.Document(PageSize.A4);
    			PdfWriter writer = PdfWriter.getInstance(document1, new FileOutputStream("test.pdf"));
    			document1.open();
    			PdfContentByte cb = writer.getDirectContent();
    			PdfGraphics2D g2 = (PdfGraphics2D)cb.createGraphics(PageSize.A4.getWidth(), PageSize.A4.getHeight(), new DefaultFontMapper());
     
     
     
    			editor.paint(g2);
    			g2.dispose();
    			document1.close();  
    		}catch (Exception e){
    			e.printStackTrace();
    		}
    Et donc le contenu de mon RTFEditorKit est envoyé au JOptionPane qui est après ajouté au PdfGraphics2D grâce au editor.paint(g2) !

    Enfin je crois, y a t il une erreur dans mon code et mon interprétation?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    Quand tu fais "editor.paint(g2)", tu demandes juste à editor d'afficher le contenu de g2... qui est vide.

    Je ne vais malheureusement pas pouvoir t'aider d'avantage.

    Une piste possible serait peut-être de déverser le contenu de RTFEditorKit dans un flux et d'injecter ce flux en entrée de itext dans la classe chargée de lire le RTF.

    Un truc qui ressemblerait à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // écrire le document RTF dans un OutputStream
    OutputStream os = new ByteArrayOutputStream();
    rtf.write(os);
    // transférer l'OutputStream dans un InputStream
    InputStream ins = new ByteArrayInputStream(os.toByteArray());
    // lire le document RTF pour itext
    com.lowagie.rtf.RtfReader reader = new com.lowagie.rtf.RtfReader(ins);
    // ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Points : 71
    Points
    71
    Par défaut
    N'ayant pas réussi avec iText, j'ai contourné le problème avec la librairie smartJprint qui est en trial Version, mais bon.....

    En tout cas merci pour ton aide très cher SAS Duc Lebowskiv

    @*=

Discussions similaires

  1. Convertir un fichier .rtf en .pdf
    Par Aguado dans le forum ASP
    Réponses: 5
    Dernier message: 05/06/2009, 17h06
  2. [E-07] Convertir des fichiers objects en PDF
    Par lucazzo dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 05/11/2008, 15h03
  3. VBA : Convertir un fichier Word en pdf
    Par shimuno dans le forum VBA Word
    Réponses: 5
    Dernier message: 01/07/2008, 19h20
  4. [SVG] Convertir un fichier SVG en PDF ou en EPS
    Par deY! dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/03/2007, 10h25
  5. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 16h27

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