Как использовать PDFBox 1.0 в среде .net / C # с использованием IKVM - PullRequest
1 голос
/ 23 февраля 2010

Я бы хотел использовать PDFBox для генерации PDF-файлов в моем проекте .net. PDFBox заявляет, что его можно использовать в .net через IKVM http://www.pdfbox.org/userguide/dot_net.html

НО при запуске ikvmc (последняя версия) для создания библиотек DLL на PDFBOX.1.0.0.jar генерируется множество предупреждений NoClassDefFound.

Как мне это исправить, и какие еще библиотеки DLL мне нужно включить в мой проект? Кажется, что имена файлов изменились по сравнению с более старой документацией / статьями, которые я прочитал по этому вопросу.

спасибо заранее.

Ответы [ 2 ]

1 голос
/ 22 марта 2010

Я только что столкнулся с этим вопросом, пытаясь понять, как заставить работать PDFBox 1.0.Похоже, что ошибки NoClassFound генерируются, потому что он не может найти ссылки на файлы jar (которые находятся в папке с названием «external»).Вот как мне наконец удалось заставить его работать:

  1. Использовать двоичные файлы из IKVM 0.30.00
  2. Поместить файл jar pdfbox-1.0.0 во внешнюю папку (легче ссылаться)
  3. В командной строке выполните lkvmc.exe -target: library -out: "[Выходной путь] \ netpdfbox.dll" "[PDFBox Path] \ *. jar" <- * .jar предписывает IKVM запустить все файлы jar как одну большую сборку </li>

Вы должны иметь возможность включить выведенный .dll в ваш код C #.Я смог выполнить следующий код без каких-либо проблем:

PDDocument doc = PDDocument.load("test.pdf");
string output = new PDFTextStripper().getText(doc);
0 голосов
/ 23 февраля 2010

Это зависит от того, какую версию PDFBox вы используете. Последняя версия releaesd (0.7.3) использует IKVM 0.30.00. Существуют и другие версии IKVM, и не все они имеют обратную совместимость. Существует также еще одна бета-версия PDFBox, которая, как мне кажется, использует более новую версию IKVM.

Я почти уверен, что библиотеки IKVM, необходимые для каждого версионного выпуска PdfBox, находятся в zip-файле релиза. Убедитесь, что вы используете ту, которая поставляется вместе с выпуском, а не последнюю версию IKVM, поскольку они могут быть несовместимы.

...