Извлечение данных из файлов .PDF - PullRequest
23 голосов
/ 24 января 2011

Мне нужно извлечь данные из файлов .PDF и загрузить их в SQL 2008. Может кто-нибудь сказать мне, как поступить ??

Ответы [ 4 ]

29 голосов
/ 24 февраля 2011

Вот пример того, как использовать iTextSharp для извлечения текстовых данных из PDF. Вам придется немного поиграть с этим, чтобы заставить его делать именно то, что вы хотите, я думаю, это хороший план. Вы можете увидеть, как StringBuilder используется для хранения текста, но вы можете легко изменить его на использование SQL.

    static void Main(string[] args)
    {
        PdfReader reader = new PdfReader(@"c:\test.pdf");

        StringBuilder builder = new StringBuilder();

        for (int x = 1; x <= reader.NumberOfPages; x++)
        {
            PdfDictionary page = reader.GetPageN(x);
            IRenderListener listener = new SBTextRenderer(builder);
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
            PdfDictionary pageDic = reader.GetPageN(x);
            PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
            processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, x), resourcesDic);
        }
    }

public class SBTextRenderer : IRenderListener
{

    private StringBuilder _builder;
    public SBTextRenderer(StringBuilder builder)
    {
        _builder = builder;
    }
    #region IRenderListener Members

    public void BeginTextBlock()
    {
    }

    public void EndTextBlock()
    {
    }

    public void RenderImage(ImageRenderInfo renderInfo)
    {
    }

    public void RenderText(TextRenderInfo renderInfo)
    {
        _builder.Append(renderInfo.GetText());
    }

    #endregion
}
8 голосов
/ 24 января 2011

Представь, если бы ты задал этот вопрос. Как я могу загрузить данные из произвольных текстовых файлов в таблицу SQL. Задача не в том, чтобы открыть текстовый файл и прочитать его, а в том, чтобы автоматически извлечь значимые данные из файлов.

Таким образом, вы можете использовать iText или pdfSharp для чтения PDF-файлов, но получение значимых данных будет проблемой.

4 голосов
/ 01 марта 2011

что вам нужно сделать, это сначала использовать инструмент для извлечения текста из PDF, а затем прочитать файл в двоичном считывателе ... затем сохранить его в своей базе данных ... для извлечения текста есть несколько инструментов, которые можно использовать.в первую очередь следует упомянуть:

iTextsharp , которая является библиотекой, которую можно загрузить и которая используется для выполнения обширной работы и всестороннего редактирования и компоновки при работе с документами PDF, а такжеЕсть много примеров, доступных онлайн, а также полная книга, которая объясняет все тонкости Второй инструмент - Adobe PDF iFilter - инструмент от Adobe для работы с PDF-модификациями и манипуляциями.
Также Foxit iFilter также представляет собой аналогичную сборку, которая может сделать именно то, что вы просите! PDF Box также послужит вам!

это самые известные и хорошо документированные!проверьте следующие примеры: попробуйте следующие примеры в проекте кода:

Анализ файлов PDF в .NET с использованием PDFBox и IKVM.NET. Простой класс для извлечения простого текста из PDFдокументы с ITextSharp Использование интерфейса IFilter для извлечения текста из документов различных типов Анализатор для PDF-форм, написанных на C # .NET
Они делаютработа, и их нетрудно понять.Надеюсь, они вам помогут :-)

Последнее замечание: Что касается меня, я бы назвал iTextSharp, поскольку это самая хорошо документированная библиотека с большинством доступных примеров.

4 голосов
/ 24 января 2011

Если вы имеете в виду метаданные, попробуйте этот вопрос (первый ответ)

Чтение / изменение метаданных PDF с помощью iTextSharp

Тебе придется самому заняться базой данных.

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