2016-09-15 6 views
0

pour un complément Word J'utilise PDFBox pour manipuler des fichiers PDF. Ou plutôt je voudrais l'utiliser. Je l'ai utilisé auparavant avec une application de bureau auto-créé. PDFBox est une bibliothèque Java qui peut être rendue utilisable en tant que DLL avec IKVM (comme ici: http://www.squarepdf.net/pdfbox-in-net). Le problème que j'éprouve est que toutes les bibliothèques pour Wordaddins doivent être fortement nommées. J'ai essayé au signe de strongname mais j'obtiens une exception qu'une partie de la notation commune d'apache (dans le répertoire MANIFEST.MF) ne peut pas être trouvée. Je sais que c'est assez vague jusqu'ici et je posterai plus de détails plus tard, mais peut-être que quelqu'un a déjà traversé ceci et a une idée sur comment faire ceci correctement ou peut me diriger vers un endroit où il y a déjà une version PDFBox. Merci d'avance!Signature d'un nom fort IKVM PDFBox pour Word Addin

Répondre

0

Je vais donner plus d'informations à cette question, parce que mon collègue est en vacances. J'ai fort nommé tous pdfbox-dlls et sur l'essai d'ouvrir un pdf, j'obtiendrai la première exception de FileNotFoundException. Le fichier $ (PrjectDir) \ bin \ x86 \ Debug \ commons-logging.properties est introuvable.

Toutes les exceptions suivantes ont le même problème. À titre d'exemple, l'exception suivante est une exception DirectoryNotFoundException. Il n'a pas pu trouver \ bin \ x86 \ Debug \ META-INF \ services \ org.apache.commons.logging.LogFactory. Il y a plus de 10 FileNotFoundExceptions seulement à l'ouverture de mon PDF:

doc = PDDocument.load(new File(inputFile)); 

Tous peuvent pas trouver quelque chose de l'enregistreur.

Dans la prochaine étape, je tente de faire un flux de contenu de la première page de ce pdf:

contentStream = new PDPageContentStream(doc, (PDPage)doc.getDocumentCatalog().getAllPages().get(0), true, false); 

La première exception, je deviendrai il y a un autre FileNotFoundException C: \ Users (utilisateur) .accessibility.properties ou $ (ProjectDir) \ bin \ x86 \ Déboguer \ META-INF \ services \ java.text.spi.NumberFormatProvider

Jusqu'à présent, j'ai 20 exceptions ou plus. La plupart d'entre eux ne peuvent pas trouver quelque chose de l'enregistreur. Mais je peux écrire le pdf ouvert sur le disque dur. Si je tente d'insérer du texte dans ContentStream, je reçois un plus difficile exception au point où je dois définir la police:

PDFont font = PDType1Font.HELVETICA; 
contentStream.setFont(font, 10); 

A ce stade, je me exception suivante:

Une exception (première chance) de type "System.TypeInitializationException" s'est produite dans fontbox-1.8.12.dll. Informations supplémentaires: L'initialiseur de type pour "org.apache.fontbox.cmap.CMap" a généré une exception.

Je pense que les références ont un problème, si pdfbox est fort nommé. Quelqu'un a une idée, que faire? Merci beaucoup.