cancel
Showing results for 
Search instead for 
Did you mean: 

transformation de document Office en PDF [Résolu]

huberd
Champ in-the-making
Champ in-the-making
Bonjour,

je cherche la fonction java me permettant de convertir des documents office via open office en PDF comme le permet l'assistant de création d'action.

Merci pour votre aide.
12 REPLIES 12

rguinot
Confirmed Champ
Confirmed Champ
Qu'entendez vous par
la fonction java

Cette page peut vous être utile :
http://wiki.alfresco.com/wiki/Content_Transformations

rivarola
Champ on-the-rise
Champ on-the-rise
Bonjour,

La classe qui effectue les transformations (Open)Office -> PDF est OpenOfficeContentTransformer. La méthode utilisée est transform, comme tous les transformers. En général on ne l'instancie pas directement mais on en demande une instance au ContentService via sa méthode getTransformer :
    public ContentTransformer getTransformer(String sourceMimetype, String targetMimetype);
Pour avoir un exemple d'utilisation tu peux t'inspirer du test unitaire de cette classe : OpenOfficeContentTransformerTest.

huberd
Champ in-the-making
Champ in-the-making
Bonjour,

La classe qui effectue les transformations (Open)Office -> PDF est OpenOfficeContentTransformer. La méthode utilisée est transform, comme tous les transformers. En général on ne l'instancie pas directement mais on en demande une instance au ContentService via sa méthode getTransformer :
    public ContentTransformer getTransformer(String sourceMimetype, String targetMimetype);
Pour avoir un exemple d'utilisation tu peux t'inspirer du test unitaire de cette classe : OpenOfficeContentTransformerTest.

Ok Merci pour l'info.

Peux-tu me dire si il existe également une fonction capable de surimprimer un texte dans un document PDF existant. Ma problèmatique est la suivante : permettre de rajouter une référence qualité à un document validé et convertit en PDF.

Merci pour ton aide.

huberd
Champ in-the-making
Champ in-the-making
Bon j'ai trouver comment faire pour convertir un document en PDF avec openoffice.

this.transformer = new OpenOfficeContentTransformer();
this.transformer.setMimetypeService(mimetypeService);
this.transformer.setConnection(openOfficeConnection);
this.transformer.setDocumentFormatsConfiguration("classpath:alfresco/mimetype/openoffice-document-formats.xml");
this.transformer.register();
             
ContentReader reader = this.contentService.getReader(sessionNodeRef, ContentModel.PROP_CONTENT);   
String contentMimeType = this.contentService.getWriter(sessionNodeRef, ContentModel.PROP_CONTENT, true).getMimetype().toString();
reader.setMimetype(contentMimeType);

File pdfTargetFile = TempFileProvider.createTempFile("TEST PDF" + "-target-", ".pdf");
ContentWriter writer = new FileContentWriter(pdfTargetFile);
writer.setMimetype(MimetypeMap.MIMETYPE_PDF);
          
transformer.transform(reader, writer);

Ce code me permet de convertir mes documents offices en PDF. Ces documents PDF sont créés dans le repertoire temps de mon système grâce (ou à cause) du code suivant.

File pdfTargetFile = TempFileProvider.createTempFile("TEST PDF" + "-target-", ".pdf");

Je souhaiterais pouvoir créer un nouveau node qui hérite des propriété du node convertit (propriété du document) sans le document afin de pouvoir y placer le document en PDF et qui me permettrait d'utiliser le code suivant :

ContentReader reader = this.contentService.getReader(cloneNode, ContentModel.PROP_CONTENT);    

Si quelqu'un a une idée.

Je vous remercie d'avance.

rivarola
Champ on-the-rise
Champ on-the-rise
Il me semble que c'est exactement ce que fait la classe TransformActionExecuter…

huberd
Champ in-the-making
Champ in-the-making
Il me semble que c'est exactement ce que fait la classe TransformActionExecuter…

oui, c'est exactement cela, sauf que la classe TransformActionExecuter disponible sur le svn est beaucoup plus avancée et utilise une classe inconnue dans la version 2.1. La classe en question est la suivante : TransformationOptions

J'ai donc reécrit la classe TransformActionExecuter à ma convenance, je viens à peine de la recompiler et je suis partit pour la tester. Souhaites moi bon courage  :wink:

huberd
Champ in-the-making
Champ in-the-making
Bon ça à l'air de fonctionner pour le peut que j'en ai testé.

Maintenant je recherche à savoir si il existe également une fonction capable de surimprimer un texte dans un document PDF existant. Ma problèmatique est la suivante : permettre de rajouter une référence qualité à un document validé et convertit en PDF.

rivarola
Champ on-the-rise
Champ on-the-rise
Regarde du côté de la librairie PDFBox qui est déjà utilisée par Alfresco : http://www.pdfbox.org/

huberd
Champ in-the-making
Champ in-the-making
Regarde du côté de la librairie PDFBox qui est déjà utilisée par Alfresco : http://www.pdfbox.org/

Oui, c'est ce que j'ai trouvé, et cela fonctionne plutôt bien à quelques petits détails près que je cherche à résoudre (Chargement de police True Type pour lequel j'ai ouvert un nouveau post).