2010-11-03 18 views
4

Est-il possible de convertir PDF en Word en Java? Je ne parle pas d'analyser un document PDF, puis le rendre personnalisé à nouveau à Word. Je veux une bibliothèque Java qui peut directement le convertir.Convertir PDF en Word en Java

+1

Comme tout le monde, je ne pense pas que vous allez avoir beaucoup de chance. Si vous avez le contrôle du système générant les fichiers PDF, vous pouvez générer plusieurs formats au moment de la génération (vous n'avez pas indiqué d'où proviennent les fichiers PDF). Est-ce une option? –

+0

Je vous entends au sujet de vouloir le faire "directement", mais en l'absence d'une seule bibliothèque (open-source?), Vous pouvez essayer l'extraction avec http://pdfbox.apache.org/ et créer le docx avec docx4j. YMMV: Google pdfbox "Segmentation des limites de paragraphe" – JasonPlutext

Répondre

4

La lecture de documents PDF est un processus très complexe et il n'y a pas de bonnes bibliothèques libres pour extraire des informations non textuelles à partir de documents PDF en Java. Pire encore, les documents PDF ont beaucoup d'informations de mise en page qui sont difficiles à reconstruire, par exemple une table dans un document Word devient quelques lignes et un tas de morceaux de texte en PDF.

+1

"Beaucoup d'informations de mise en page difficiles à reconstruire" sont trompeuses. Il n'y a pas d'informations de configuration. Tout dans un PDF est absolument positionné. Il n'y a pas de table, ce sont juste des lignes, des caractères ("glyphs"), et peut-être quelques bitmaps. Heck, "texte" peut juste être des lignes aussi. Aucun à efficace, mais parfaitement "légal". –

+1

EXCEPTIONS à mon commentaire: Il y a ce truc appelé "contenu marqué" qui est optionnel dans les PDF. Quand il est là, il peut marquer des tableaux, des paragraphes, etc. Mais il n'y a pas de façon standard d'écrire le type de détail dont vous avez besoin pour une conversion fiable au format PDF-> N. PDF est tout sauf un format en écriture seule. –

+0

Après avoir essayé de faire une reconstruction PDF, il y a quelques informations de mise en page visuelle en PDF mais pas d'informations structurées réelles. Je suis d'accord avec vous Mark que la conversion de PDF à quelque chose de non image est très difficile. –

2

Il est presque impossible de recréer des informations sémantiques à partir d'un fichier PDF arbitraire. Si vous avez le même outil qui l'a écrit, vous avez un peu plus de chance, mais même là, il y a beaucoup d'incertitude. La seule chose dont vous pouvez être sûr dans un PDF (texte) est la position de chaque personnage sur la page. (Notez que certains fichiers PDF incluent des bitmaps dans lesquels des informations textuelles se produisent et qui doivent s'appuyer sur l'OCR).

Il y a plusieurs groupes dans les départements d'informatique et ailleurs qui consacrent beaucoup d'efforts pour essayer d'obtenir des informations sémantiques. Nous collaborons avec Penn State - l'un des leaders - et travaillent à l'extraction de tableaux. Dans les bons cas, ils obtiennent 90% dans les mauvais 50%. Donc, la réponse est formellement que vous ne pouvez pas, mais vous pouvez parfois avoir de la chance. (Nous faisons beaucoup de cela pour la chimie et nous sommes chanceux si nous obtenons 50% sur une base régulière).

+0

Je n'ai jamais compris cela ... il suffit de conserver les documents originaux. @. @ Je suis sûr qu'il y a probablement des moments où c'est nécessaire, mais vraiment, le point entier d'un PDF est un document finalisé, non éditable.'' – kcoppock

+0

@kcoppock. C'est quand vous avez besoin de quelque chose du document de quelqu'un d'autre. Par exemple, je veux des données de la littérature scientifique. Bien que les éditeurs aient le XML, ils refusent généralement de le rendre disponible, nous devons donc essayer d'extraire du fichier PDF. Dans de nombreux cas, les gens doivent retaper des éléments ou redessiner des graphiques. –

+0

Je peux comprendre cela, mais en même temps, cela signifie que l'éditeur ne veut pas que vous utilisiez le contenu. – kcoppock

0
  1. Vous pouvez essayer de le faire avec la bibliothèque iText. Lisez le PDF, puis écrivez-le en RTF.
    Ce n'est pas si simple, car vous devez préserver le style différent du PDF.

  2. Vous pouvez utiliser certains outils externes.
    Installez un programme gratuit comme "Free PDF to Doc" et exécutez-le à partir de votre programme Java.
    Cela fonctionne très bien dans la plupart des cas. Utiliser le SDK Acrobat Pro à partir de votre code java.

Bonne chance