2013-06-03 2 views
1

J'essaie de récupérer une instance File ou InputStream de PDDocument sans enregistrer un PDDocument dans le système de fichiers.Java PDFBox, comment obtenir l'objet fichier de PDDocument

PDDocument doc= new PDDocument(); 
...  
doc.save("D:\\document.pdf"); 
File f= new File("D:\\document.pdf"); 

est-il une méthode dans PDFBox qui retourne File ou InputStream d'un PDDocument existant?

Répondre

0

si vous créez le outputstream

PDDocument doc= new PDDocument(); 
File f= new File("D:\\document.pdf"); 
FileOutputStream fOut = new FileOutputStream(f); 
doc.save(fOut); 

Jetez un oeil à ce http://pdfbox.apache.org/apidocs/org/apache/pdfbox/pdmodel/PDDocument.html#save(java.io.OutputStream)

+0

Le problème est que je ne veux pas créer un fichier sur mon système de fichiers, je veux mettre ce fichier pdf directement dans le référentiel Alfresco ... avez-vous des idée comment puis-je faire cela? –

+0

@MilosGavrilov et quel protocole alfresco prend-il en charge pour effectuer ce transfert? Parce que dès que vous obtenez un flux de sortie pour écrire à vous êtes bon d'aller – fGo

+0

cela ne répond pas à la question car il obtient le flux à partir d'un fichier sur l'ordinateur. –

11

Je l'ai résolu:

PDDocument doc=new PDDocument();   
PDStream ps=new PDStream(doc); 
InputStream is=ps.createInputStream(); 
0

je l'ai résolu de cette façon (Il est la création d'un fichier mais dans le répertoire du fichier temporaire):

final PDDocument document = new PDDocument(); 
final File file = File.createTempFile(filename, ".pdf"); 
document.save(file); 

et si vous avez besoin

document.close(); 
Questions connexes