Как прочитать файл PDF в текстовый файл в правильном формате, используя Spire.PDF или любую другую библиотеку? - PullRequest
0 голосов
/ 26 мая 2018

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

Я попробовал приведенный ниже код, чтобы прочитать файл и сохранить его втекстовый файл

PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"C:\Users\Tamal\Desktop\101395a.pdf");

StringBuilder buffer = new StringBuilder();

foreach (PdfPageBase page in doc.Pages)
{
    buffer.Append(page.ExtractText());
}

doc.Close();
String fileName = @"C:\Users\Tamal\Desktop\101395a.txt";
File.WriteAllText(fileName, buffer.ToString());
System.Diagnostics.Process.Start(fileName);

Но выходной текстовый файл неправильно отформатирован.У него есть лишние пробелы и полный параграф разбит на несколько строк и т. Д.

Как получить желаемый результат, как в желаемом текстовом файле ?

Кроме того, онМожно ли обнаружить и пометить (например, добавить метку) тексты жирным шрифтом, курсивом или подчеркиванием?Кроме того, все становится более проблематичным, поскольку страницы содержат несколько столбцов текста.

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Использование iText

File inputFile = new File("input.pdf");

PdfDocument pdfDocument = new PdfDocument(new PdfReader(inputFile));

SimpleTextExtractionStrategy stes = new SimpleTextExtractionStrategy();
PdfCanvasProcessor canvasProcessor = new PdfCanvasProcessor(stes);
canvasProcessor.processPageContent(pdfDocument.getPage(1));

System.out.println(stes.getResultantText());

Это (как говорится в коде) базовая / простая стратегия извлечения текста.Более подробные примеры можно найти в документации.

0 голосов
/ 02 июня 2018

Используйте IronOCR

var Ocr = new IronOcr.AutoOcr();
var Results = Ocr.ReadPdf("E:\Demo.pdf");
File.WriteAllText("E:\Demo.txt", Convert.ToString(Results));

Для справки https://ironsoftware.com/csharp/ocr/

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

Если вы хотите получить точный, предварительно интерпретированный вывод, то вам следует проверить платные услуги OCR, такие как OmniPage capture SDK & Abbyy finereader SDK

0 голосов
/ 26 мая 2018

Такова природа PDF.В основном это говорит: «иди в это место на странице и размести там этого персонажа».Я совсем не знаком со Spire.PFF;Я работаю с Java и библиотекой PDFBox, но любая попытка извлечь текст из PDF является эвристической и, следовательно, несовершенной.Этой проблеме уделяется значительное внимание, и некоторые приложения имеют лучшие результаты, чем другие, поэтому вы можете просмотреть все доступные варианты.Тем не менее, я думаю, вам придется убрать результат.

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