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 :

[PDF] selection et création


Sujet :

Documents Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par défaut [PDF] selection et création
    Bonjour,

    Est il possible en java de créer un document pdf a partir d'un autre document pdf existant par une selection.

    c'est a dire :

    - j'ai un fichier pdf : base.pdf
    - j'ai deux numéros de pages : i et j
    - je veux que result.pdf soit la selection des pages i a j du document base.pdf

    Un moyen pour faire cela avec du java ?
    Merci a vous !

  2. #2
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Par défaut
    http://www.lowagie.com/iText/
    http://www.geocities.com/marcoschmidt.geo/java-libraries-pdf.html
    http://www.corda.com/lpage/java_pdf.html

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par défaut
    AVEC iTexT
    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
     
    import java.io.*;
     
    import com.lowagie.text.*;
    import com.lowagie.text.pdf.*;
     
    public class Chap0112 {
     
     
        public static void main(String[] args) {
     
            System.out.println("Chapter 1 example 12: reading an existing PDF file");
     
            try {
                // we create a reader for a certain document
                PdfReader reader = new PdfReader("D:/fic/origine.pdf");
                int pageDeb = 5;
                int pageFin = 8;
     
     
                // we retrieve the size of the first page
                Rectangle psize = reader.getPageSize(1);
                float width = psize.width();
                float height = psize.height();
     
                // step 1: creation of a document-object
                Document document = new Document(psize, 50, 50, 50, 50);
                // step 2: we create a writer that listens to the document
                PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("D:/fic/sortie.pdf"));
                // step 3: we open the document
                document.open();
                // step 4: we add content
                PdfContentByte cb = writer.getDirectContent();
                int i = 0;
     
              while (i <= pageFin) {  
                	if (i<pageDeb){
                		i++;
                	}else{
                	//pageDeb <= i <= pageFin	
                    document.newPage();
     
                    PdfImportedPage page1 = writer.getImportedPage(reader, i);
                    cb.addTemplate(page1,0,0);
                    System.err.println("Processed page " + i);
                    i++;
                	}
                }
                // step 5: we close the document
                document.close();
            }
            catch (Exception de) {
                de.printStackTrace();
            }
        }
    }
    L'avez vous deja fait avec autre chose que iText ?

    Et si je veux le mettre dans une servlet (Action sous struts) pour une ouverture immédiate ?
    Parce que la solution que j'ai développée crée un fichier sur le disque ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Par défaut
    Il faut remplacer une partie du code par :
    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
     
       pHttpServletResponse.setContentType("application/pdf");
        ByteArrayOutputStream ba = new ByteArrayOutputStream();
     
     
        try {
            // we create a reader for a certain document
            PdfReader reader = new PdfReader(emplacementpdf);
     
            // we retrieve the size of the first page
            Rectangle psize = reader.getPageSize(1);
            float width = psize.width();
            float height = psize.height();
     
            // step 1: creation of a document-object
            Document document = new Document(psize, 50, 50, 50, 50);
            // step 2: we create a writer that listens to the document
            PdfWriter writer = PdfWriter.getInstance(document, ba);
            writer.setViewerPreferences(PdfWriter.HideToolbar+PdfWriter.HideMenubar);
            // step 3: we open the document
            document.open();
            // step 4: we add content
            PdfContentByte cb = writer.getDirectContent();
            int i = 0;
     
     
            while (i <= pageFin) {  
            	if (i<pageDeb){
            		i++;
            	}else{
            	//pageDeb <= i <= pageFin	
                document.newPage();
     
                PdfImportedPage page1 = writer.getImportedPage(reader, i);
                cb.addTemplate(page1,0,0);
                System.err.println("Processed page " + i);
                i++;
            	}
            }
            // step 5: we close the document
            document.close();
     
            pHttpServletResponse.setContentLength(ba.size());
            ServletOutputStream out = pHttpServletResponse.getOutputStream();
            ba.writeTo(out);
            out.flush();
     
     
     
        }
        catch (Exception de) {
            de.printStackTrace();
        }
    Niveau du PDFWriter, mettre le

    ByteArrayOutputStream ba = new ByteArrayOutputStream();

    et donc
    PdfWriter writer = PdfWriter.getInstance(document, ba);

    où "ba" remplace l'empalcement du fichier "physique" que 'javais avant !

    allez, résolu !
    :wink:

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/04/2014, 18h29
  2. [AC-2007] indice selection sur création etat
    Par xav285 dans le forum IHM
    Réponses: 5
    Dernier message: 05/03/2011, 14h18
  3. Réponses: 0
    Dernier message: 14/12/2008, 23h21
  4. [xml] oracle et création de pdf...
    Par MatMeuh dans le forum XQUERY/SGBD
    Réponses: 7
    Dernier message: 28/11/2004, 14h21
  5. Création de Report PDF
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2004, 22h20

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