2017-02-17 3 views
1

Мой PDF содержит список лиц, и я в настоящее время ищет идеальное решение, чтобы получить этих людей, но в некоторых случаях, я закончил чтение это предложение:Как я могу узнать значение из помеченного pdf?

Это не представляется возможным, так как PDF-файлы не имеют структуру.

Теперь есть помеченные PDF-файлы, которые показывают вам «структуру» вашего PDF-файла. В моем случае у меня есть помеченный PDF-файл, где каждое значение человека имеет свою собственную строку, и каждый человек находится в столбце. Это означает, что есть/должен быть простой способ проанализировать эту «таблицу» в моем PDF-документе, чтобы получить ценность каждого человека, не так ли?

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

(сторона маленький вопрос: Являются ли PDF в приложениях Excel с использованием тегов из PDF создать файл в программе Excel?)

EDIT # 1:

Это пример файла PDF: enter image description here

Я уже попробовал ваш путь @Lara Рекомендованного с Syncfusion, но проблемой является строкой я получаю:

John Peter Smith Smithstrasse 1 0101 Smithikon am See 010 010 01 01 020 020 02 02 

Нельзя использовать Regex с таким выходом. Проблема в том, что вы никогда не знаете, принадлежит ли Peter к первому или фамилию, а Smith может быть частью улицы. Вот почему я не могу использовать его, и именно поэтому я ищу решение, в котором я могу использовать теги в PDF. Все хорошо разделено, поэтому мне нужен способ получить значения из тегов. enter image description here

EDIT # 2: Как @Balasubramanian желал вот помеченный пример PDF: http://www.sh.ch/fileadmin/Redaktoren/Dokumente/Aufsichtsbehoerde_ueber_das_Anwaltswesen/Verzeichnis_SH_Anwaelte.pdf

Это PDF дает с Syncfusion именно выход я добавляю в Edit # 1.

У меня нет особых требований для вывода, поэтому не имеет значения, получаю ли я данные в файле JSON, массиве или чем-то подобном. С другой стороны, важно то, что каждое значение каждого человека разделяется, поэтому я могу получить эти значения. Но большой вопрос в том, как я могу это сделать. Теги должны быть где-то сохранены в файле PDF (метаданные?).

ответ

0

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

public static string GetTextFromAllPages(String pdfPath) 
{ 
    PdfReader reader = new PdfReader(pdfPath); 

    StringWriter output = new StringWriter(); 

    for (int i = 1; i <= reader.NumberOfPages; i++) 
     output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy())); 

    return output.ToString(); 
} 

Вы можете получить библиотеку из https://sourceforge.net/projects/itextsharp/ или NuGet тоже. Просто загрузите и обратитесь в свое приложение и используйте приведенный выше фрагмент кода. Вы сможете извлечь PDF в текст.

Update:

Ниже то, что я хотел бы предложить вам попробовать ..

string pDFExtract = "John Peter Smith Smithstrasse 1 0101 Smithikon am See 010 010 01 01 020 020 02 02"; 

string[] arrpDFExtract = pDFExtract.Split(' '); 

string Name = arrpDFExtract[0] +" "+ arrpDFExtract[1]; 

Здесь, вы должны выяснить, что размер массива строк и на основании, что вы должны создать условия, в которых вы получите точные значения, которые вы хотите ... Анализ состояния массива длину и соответствующие значения, которые вы должны сделать. Пост, который просто используется выше, и извлекает все из PDF.

Я сделал много обработки документов с использованием такого типа построения алгоритмов, и каждая вещь работает так же, как шарм.

+0

Не тот ответ, который я ищу. Я знаю, что это может сработать, но это, я думаю, печатается по строкам, но мне нужны значения отдельно. Из-за форматирования я не могу использовать Regex, чтобы получить их из строки. – SovietPanda

+0

Какое у вас образование. Выше решение извлекает PDF в String.Now у вас есть множество методов, доступных в строке, чтобы добавить свою логику и получить то, что вы хотите. – Lara

+0

Для вас информация, читайте значения по строкам в строке ... Затем разделите строку на основе некоторого разделителя, такого как «" (пробел) и добавить в массив строк. Теперь узнайте, какая информация доступна в каком месте массива строк. Получите это и используйте согласно вашему требованию ... – Lara

0

В настоящее время У Syncfusion нет поддержки для извлечения текста из документа с меткой PDF. Однако можете ли вы предоставить ожидаемую структуру вывода из помеченного документа PDF, а также документ PDF, с помощью которого вы пытаетесь извлечь из него тексты.

+0

Я редактирую свой вопрос – SovietPanda

Смежные вопросы