Пытаюсь разобрать содержимое PDF-файлов.В основном это научные исследования.
Вот часть, которую я пытаюсь получить:
Мне нужны только название статьи иИмя автора (ов).
Я использовал PDF Parser Library .И я смог получить текст заголовка, используя этот код:
function get_pdf_prop( $file )
{
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile( $file );
$details = $pdf->getDetails();
$page = $pdf->getPages()[0];
//-- Extract the text of the first page
$text = $page->getText();
$text = explode( 'ABSTRACT', $text, 2 ); //-- get the text before the "ABSTRACT"
$text = $text[0];
//-- split the lines
$lines = explode( "\n", $text );
return array(
'total_pages' => $details['Pages'],
'paper_title' => $lines[0] . $lines[1],
'author' => $lines[2]
);
}
Я только что проанализировал полный текст первой страницы, и тогда он вернет весь текст в простом формате.Поскольку требуемое содержимое находится перед словом ABSTRACT
, я попытался разбить текст, а затем разбить строки.
И я предполагаю, что первые две строки - это заголовок, а третья строка - имя автора.До сих пор документы, подобные приведенным на скриншоте выше, дают правильные результаты.
Но проблемы возникают при следующих сценариях:
Если заголовок статьи состоит из одной строки, я не понимаюне знаю это раньше руки.Так что мой код всегда будет возвращать первые две строки в виде бумажной плитки.И это может дать как название, так и имя автора как paper_title
Если заголовок статьи состоит из трех строк, снова это вызовет проблемы.
Если существует более 1 автора, мой код не вернет правильные данные.
Поэтому любые предложения о том, как эффективно я могу получить данные, такие как название статьи и имя автора (ов)) из научной статьи в PDF?Уверен, что все они следуют одному и тому же шаблону при создании PDF-файлов с использованием инструментов LateX.Какие-нибудь лучшие решения или подсказки?
Пожалуйста, обратите внимание, что я пытаюсь сделать это на бумаге, загруженной на моем сайте.И я использую PHP в качестве языка на стороне сервера.
Спасибо