Bonjour,
Je suis entrain d'essayer de fusionner les documents existants sous différents repertoire mais le console m'affiche
java.io.IOException: Stream Closed
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at com.itextpdf.text.io.StreamUtil.inputStreamToArray(StreamUtil.java:71)
at com.itextpdf.text.io.RandomAccessSourceFactory.createSource(RandomAccessSourceFactory.java:146)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:350)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:370)
at test.Ms.concatPDFs(Ms.java:72)
at test.Ms.main(Ms.java:42)
at test.List.main(List.java:22)
fin traitement
ce message est affiché beaucoup de fois a cause du boucle existante dans la classe List
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
 
 
import java.io.File;
import java.io.IOException;
 
 
public class List {
	public static void main(String[] args) throws IOException {
		String path = "D:\\AttijariGenerator\\fichiers temporaires\\dos";
		String[] ListeD = listerCont(path);
 
		System.out.println(ListeD[1]);
		for (int i =0;i<ListeD.length;i++){
			ListeD[i]=path.concat("\\"+ListeD[i]);
			System.out.println(ListeD[i]);
 
		}
 
		for (int i =0;i<ListeD.length;i++){
 
		Ms.main(ListeD[i],i);
	}
}
 
 
 
	public static String[] listerCont(String t ){
 
	        	File f=new File(t);
		        String[] liste=f.list();
				return liste;
			}
}
et finalement voila la classe chargé de la fusion
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 
package test;
 
 
 
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
 
 
 
public class Ms {
 
    public static void main(String path ,int n) throws FileNotFoundException {
 
    	String[] R = lister(path);
    	 for (int i =0;i<R.length;i++){
    		 R[i]=path.concat("\\"+R[i]);
    	 }
 
            List<InputStream> pdfs = new ArrayList<InputStream>();
 
 
            for (int i =0;i<R.length;i++){
 
            pdfs.add(new FileInputStream(R[i]));                     
            OutputStream output = new FileOutputStream(path+n+".pdf");
            Ms.concatPDFs(pdfs, output, true);
            System.out.println("fin traitement");
    	}
 
    }
 
 
 
    public static String[] lister(String path) {
    	File f=new File(path);
        String[] liste=f.list();
		return liste;
 
	}
 
 
 
	public static void concatPDFs(List<InputStream> streamOfPDFFiles,
            OutputStream outputStream, boolean paginate) {
 
        Document document = new Document();
        try {
            List<InputStream> pdfs = streamOfPDFFiles;
            List<PdfReader> readers = new ArrayList<PdfReader>();
            int totalPages = 0;
            Iterator<InputStream> iteratorPDFs = pdfs.iterator();
 
            // Create Readers for the pdfs
            while (iteratorPDFs.hasNext()) {
                InputStream pdf = iteratorPDFs.next();
                PdfReader pdfReader = new PdfReader(pdf);
                readers.add(pdfReader);
                totalPages += pdfReader.getNumberOfPages();
            }
            // Create a writer for the outputstream
            PdfWriter writer = PdfWriter.getInstance(document, outputStream);
 
            document.open();
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
                    BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            PdfContentByte cb = writer.getDirectContent(); // Holds the PDF
            // data
 
            PdfImportedPage page;
            int currentPageNumber = 0;
            int pageOfCurrentReaderPDF = 0;
            Iterator<PdfReader> iteratorPDFReader = readers.iterator();
 
            // Loop through the PDF files and add to the output.
            while (iteratorPDFReader.hasNext()) {
                PdfReader pdfReader = iteratorPDFReader.next();
 
                // Creer new page 
                while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) {
                    document.newPage();
                    pageOfCurrentReaderPDF++;
                    currentPageNumber++;
                    page = writer.getImportedPage(pdfReader,
                            pageOfCurrentReaderPDF);
                    cb.addTemplate(page, 0, 0);
 
                    // Code pour pagination.
                    if (paginate) {
                        cb.beginText();
                        cb.setFontAndSize(bf, 9);
                        cb.showTextAligned(PdfContentByte.ALIGN_CENTER, ""
                                + currentPageNumber + " of " + totalPages, 520,
                                5, 0);
                        cb.endText();
                    }
                }
                pageOfCurrentReaderPDF = 0;
            }
 
            document.close();
 
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (document.isOpen())
                document.close();
            try {
                if (outputStream != null)
                    outputStream.close();
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }
}
merci de m'aider