Bonjour,
Je voudrais convertir un PDF A1 iso en PDF. Pour cela j'ai voulu récupérer le PDF A le convertir en PostScript puis le reconvertir en PDF. En utilisant GSView et GhostScript cela fonctionne parfaitement.
En faisant quelques recherches j'ai trouvé une API qui pourrait me permettre de faire cela :
Ghost4J voici le lien de téléchargement http://ghost4j.sourceforge.net/
Voilà mon code :
Et voilà l'erreur :
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 import java.io.FileOutputStream; import java.text.ParseException; import net.sf.ghost4j.converter.PDFConverter; import net.sf.ghost4j.converter.PSConverter; import net.sf.ghost4j.document.*; import java.io.File; import org.apache.commons.io.IOUtils; public class Main { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub FileOutputStream fos = null; try { //--------------------------------Transformation en PS //load PDF document PDFDocument document = new PDFDocument(); document.load(new File("..\\..test.pdf")); fos = new FileOutputStream(new File("..\\..testPs.ps")); //create PS converter PSConverter psConv = new PSConverter(); System.out.println("debut de la conversion en ps.........."); psConv.convert(document, fos); System.out.println("fin de la conversion en ps.........."); //--------------------------------Transformation en PDF // load PostScript document PSDocument docPs = new PSDocument(); docPs.load(new File("..\\..testPs.ps")); fos = new FileOutputStream(new File("..\\..final.pdf")); //create PDF converter PDFConverter converter = new PDFConverter(); converter.setPDFSettings (PDFConverter.OPTION_PDFSETTINGS_PREPRESS); converter.convert(docPs, fos); } catch (Exception e) { System.err.println("ERROR: " + e.getMessage()); e.printStackTrace(); } finally{ IOUtils.closeQuietly(fos); } } }
Il y a peut être un moyen plus simple pour faire la conversion ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 debut de la conversion en ps.......... ERROR: Temporary file C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ghost4j\java.io.FileOutputStream@14045361320752556281933 cannot be deleted java.io.IOException: Temporary file C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ghost4j\java.io.FileOutputStream@14045361320752556281933 cannot be deleted at net.sf.ghost4j.util.DiskStore.removeFile(DiskStore.java:106) at net.sf.ghost4j.converter.PSConverter.run(PSConverter.java:126) at net.sf.ghost4j.converter.AbstractRemoteConverter.convert(AbstractRemoteConverter.java:76) at Main.main(Main.java:30)
Sinon si quelqu'un a déjà utilisé cette API et qu'il peut m'orienter pour résoudre ce problème.
Merci par avance !
Partager