Как создать PDFBox для .Net - PullRequest
       1

Как создать PDFBox для .Net

9 голосов
/ 09 декабря 2011

Я видел примеры для извлечения текста из PDF-файлов, которые используют ITextSharp или PDFBox. PDFBox, кажется, самый «надежный» метод для извлечения текста, но он требует много дополнительных шагов.

Я пытался собрать dll, используя найденные инструкции здесь , но я не знаю, как правильно собрать необходимые файлы для .Net.

Я довольно растерян, может кто-нибудь шаг за шагом предоставить «Включить PDFBox в ваше приложение .Net для чайников»?

1 Ответ

23 голосов
/ 10 декабря 2011

Я наконец получил его на работу. Я обрисовал в общих чертах шаги, которым я следовал, чтобы получить рабочий пример. Я надеюсь, что кто-то найдет это полезным.

Загрузить Java JDK
Загрузить ИКВМ 0.42.0.6
Загрузить PDFBox 1.6.0-src.zip

Руководство по муравьям было полезно.

Я переименовал папки Ant и PDFBox, чтобы сократить их имена, и переместил их на диск C:

Вы должны настроить переменные среды. (Windows 7) Щелкните правой кнопкой мыши Мой компьютер-> Свойства-> Дополнительные параметры системы-> Переменные среды

Я использовал приведенные ниже настройки, но ваши настройки будут различаться в зависимости от того, где вы установили Java и куда вы помещаете папки Ant и PDF Box.

Variable    Value
ANT_HOME    C:\apache-ant\
JAVA_HOME   C:\Program Files (x86)\Java\jdk1.7.0_01
Path        ;C:\apache-ant\bin\     (Append semi-colon and path)

После того, как все вышеперечисленное выполнено, введите «ant» в командном окне, вы должны получить сообщение «build.xml not not!», Если все настроено правильно.

Отредактируйте файл build.xml в папке «pdfbox-1.6.0 \ pdfbox». Найдите строку, которая имеет Замените «.» На «Ваш путь к папке IKVM».

Я переместил IKVM в «C: \ IKVM», так что мой выглядит так:

Откройте командное окно и перейдите к «C: \ pdfbox-1.6.0 \ pdfbox» и введите «ant»

… и тогда происходит чудо.

Теперь в папке pdfbox должна быть куча новых папок. Необходимые DLL находятся в папке bin. Я не знаю почему, но я получил «-SNAPSHOT» и конец всех моих файлов (pdfbox-1.6.0-SNAPSHOT.dll).

IKVM.GNU.Classpath (также называемый IKVM.OpenJDK.Classpath) больше не существует, он был модульным с момента выпуска 0.40. Теперь он доступен в виде нескольких IKVM.OpenJDK. Вам нужно только несколько из них.

Создание нового проекта в Visual Studio C #

Скопируйте эти файлы из папки bin pdfBox в папку bin вашей папки bin проекта Visual C #:

pdfbox-1.6.0-SNAPSHOT.dll
fontbox-1.6.0-SNAPSHOT.dll
commons-logging.dll

Скопируйте эти файлы из папки bin ikvm в папку bin вашей папки bin проекта Visual C #:

IKVM.OpenJDK.Core.dll
IKVM.OpenJDK.SwingAWT.dll
IKVM.OpenJDK.Text.dll
IKVM.OpenJDK.Util.dll
IKVM.Runtime.dll

Добавьте ссылки на библиотеки IKVM выше и создайте свой проект.

Добавьте ссылку на dll pdfbox и снова соберите свой проект.

Теперь вы готовы написать код. В приведенном ниже простом примере был получен хороший текстовый файл из файла ввода PDF.

using System;
using System.IO;

using org.apache.pdfbox.pdmodel;
using org.apache.pdfbox.util;

namespace testPDF
{
class Program
{
    static void Main()
    {
        PDFtoText pdf = new PDFtoText();

        string pdfText = pdf.parsePDF(@"C:\Sample.pdf");

        using (StreamWriter writer = new StreamWriter(@"C:\Sample.txt"))
        { writer.Write(pdfText); }

    }

    class PDFtoText
    {
        public string parsePDF(string filepath)
        {
            PDDocument document = PDDocument.load(filepath);
            PDFTextStripper stripper = new PDFTextStripper();
            return stripper.getText(document);
        }

    }
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...