2010-02-22 11 views
1

Id j'aime utiliser PDFBox pour générer des fichiers de surbrillance PDF dans mon projet .net. PDFBox indique qu'il peut être utilisé dans .net via IKVM http://www.pdfbox.org/userguide/dot_net.htmlComment utiliser PDFBox 1.0 dans un environnement .net/C# en utilisant IKVM

MAIS ikvmc en cours d'exécution (dernière version) pour générer les DLL sur PDFBOX.1.0.0.jar génère beaucoup d'avertissements noClassDefFound.

Comment est-ce que je devrais corriger ceci, et quelles autres DLL dois-je inclure dans mon projet? Il semble que les noms de fichiers ont changé par rapport à l'ancienne documentation/articles que j'ai lus sur le sujet.

merci d'avance.

Répondre

0

Cela dépend de la version de PDFBox que vous utilisez. La dernière version releaesd (0.7.3) utilise IKVM 0.30.00. Il existe également d'autres versions d'IKVM, et toutes ne sont pas rétrocompatibles. Il y a aussi une autre version bêta de PDFBox qui, je crois, utilise une version plus récente d'IKVM.

Je suis à peu près certain que les bibliothèques IKVM requises pour chaque version versionnée de PdfBox se trouvent dans le fichier zip de version. Assurez-vous d'utiliser celui fourni avec la version, et non la dernière version d'IKVM, car ils peuvent ne pas être compatibles.

+0

Merci Nick, On dirait qu'ils havent mis à jour sourceforge à leur dernière version, il y a une version 1.0 mais les listes sourceforge .7.3 comme la dernière. http://pdfbox.apache.org/download.html#pdfbox Mon problème est que 1.0 n'inclut plus les DLL IKVM et que l'utilisation de IKVM 'from scratch' pour les générer ne semble pas fonctionner correctement. J'espérais utiliser 1.0 comme ceci est pour un système de production mais j'essaierai .7.3 – ELG

+0

@Evan - J'utilise 0.7.3 dans un système de production en ce moment, et au moins pour ce que je l'utilise, cela fonctionne ça va. Votre kilométrage peut varier. – Nick

1

Je viens juste de tomber sur cette question en essayant de comprendre par moi-même comment faire fonctionner PDFBox 1.0. Il semble que les erreurs NoClassFound soient générées car elles ne peuvent pas trouver les fichiers jar référencés (qui se trouvent dans le dossier intitulé "external"). Voici comment j'ai enfin pu le faire fonctionner:

  1. Utilisez les binaires de IKVM 0.30.00
  2. Placez le fichier jar PDFBox-dans le dossier 1.0.0 « externe » (plus facile à référencer)
  3. En ligne de commande, exécutez lkvmc.exe -target: bibliothèque -out: "[Chemin de sortie] \ netpdfbox.dll" "[Chemin PDFBox] \ *. Jar" < - le fichier * .jar indique à IKVM de s'exécuter tous les fichiers jar en tant qu'un grand assemblage

Vous devriez être en mesure d'inclure la sortie d .dll dans votre code C#. Je suis en mesure d'exécuter le code suivant sans aucun problème:

PDDocument doc = PDDocument.load("test.pdf"); 
string output = new PDFTextStripper().getText(doc);