Java:à l'aide d'apache POI, comment convertir le fichier ms word au format pdf?
En utilisant apache POI
comment convertir ms word
fichier à pdf
?
Je un en utilisant le code suivant mais sa ne fonctionne pas donner erreurs je suppose que je suis l'importation de la mauvaise classes?
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.poi.hslf.record.Document;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class TestCon {
/**
* @param args
*/
public static void main(String[] args) {
//TODO Auto-generated method stub
POIFSFileSystem fs = null;
Document document = new Document();
try {
System.out.println("Starting the test");
fs = new POIFSFileSystem(new FileInputStream("/document/test2.doc"));
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
OutputStream file = new FileOutputStream(new File("/document/test.pdf"));
PdfWriter writer = PdfWriter.getInstance(document, file);
Range range = doc.getRange();
document.open();
writer.setPageEmpty(true);
document.newPage();
writer.setPageEmpty(true);
String[] paragraphs = we.getParagraphText();
for (int i = 0; i < paragraphs.length; i++) {
org.apache.poi.hwpf.usermodel.Paragraph pr = range.getParagraph(i);
//CharacterRun run = pr.getCharacterRun(i);
//run.setBold(true);
//run.setCapitalized(true);
//run.setItalic(true);
paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n", "");
System.out.println("Length:" + paragraphs[i].length());
System.out.println("Paragraph" + i + ": " + paragraphs[i].toString());
//add the paragraph to the document
document.add(new Paragraph(paragraphs[i]));
}
System.out.println("Document testing completed");
} catch (Exception e) {
System.out.println("Exception during test");
e.printStackTrace();
} finally {
//close the document
document.close();
}
}
}
Bonjour Denis, quand j'essaie de convertir fichier word en pdf j'ai eu de la jachère d'erreur dans l'import com.lowagie.texte.Document; import com.lowagie.texte.DocumentException; import com.lowagie.texte.Paragraphe; import com.lowagie.texte.pdf.PdfWriter; s'il vous plaît dites-moi à la bibliothèque j'ai oublié de l'ajouter aussi si c'est possible de me donner un lien pour le téléchargement
OriginalL'auteur Harinder | 2011-06-01
Vous devez vous connecter pour publier un commentaire.
Réussi à le résoudre
Salut @Harinder, Étant un Long terme de l'utilisateur de DÉBORDEMENT de PILE, vous savez de code-seules réponses sont découragés ici, pourriez-vous modifier votre réponse à expliquer pourquoi il répond à la question? Il va aider à enseigner aux autres plutôt que de juste en encourageant le copier-coller de codage. Merci beaucoup 🙂
OriginalL'auteur Harinder
Cela a fonctionné Pour Moi:-
Source :- http://www.programcreek.com/java-api-examples/index.php?api=org.apache.poi.xwpf.converter.pdf.PdfConverter
org.apache.pi.xwpf.convertisseur de.pdf.PdfConverter (et PdfOptions) n'est pas une partie de Apache POI, mais xDocReport qui mal utilisé Apache POI espace de noms Voir github.com/opensagres/xdocreport/issues/174 de nos jours, leurs PdfConverter est dans le package fr.opensagres.odfdom.convertisseur de.pdf
Salut @Kushagra Sahni, Étant un Long Nouvel utilisateur de DÉBORDEMENT de PILE, vous savez de code-seules réponses sont découragés ici, pourriez-vous modifier votre réponse à expliquer pourquoi il répond à la question? Il va aider à enseigner aux autres plutôt que de juste en encourageant le copier-coller de codage. Merci beaucoup 🙂
OriginalL'auteur Kushagra Sahni
Le code ci-dessous a fonctionné pour moi:
OriginalL'auteur Rohit Dubey
Il y a plusieurs étapes ici:
Je ne sais pas si PI ne l'étape 2 pour vous. Je vous recommande de quelque chose d'autre, comme iText.
OriginalL'auteur duffymo
Comme une note de côté, il est également possible de lire du contenu à la volée directement à partir de Word/Excel flux de contenu au lieu de le lire à partir du système de fichiers et la sérialisation sur le disque, par exemple lors de la récupération du contenu de CMIS référentiels:
par exemple
(doc est de type
org.apache.chemistry.opencmis.client.api.Document
et dans ce cas j'ai adapté ton code pour récupérer un fichier word à partir d'un référentiel Alfresco par le biais de opencmis et transformé en PDF)HTH
OriginalL'auteur theshadow
En plus de Kushagra réponse, voici la mise à jour des dépendances maven:
OriginalL'auteur Erich13