我正在尝试解析 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]
);
}
我所做的是,解析第一页的全文,然后它将以纯格式返回整个文本。由于所需的内容在 word 之前ABSTRACT
,我尝试拆分文本,然后拆分行。
我假设前两行是标题,第三行是作者姓名。到目前为止,我在上面的屏幕截图中显示的论文给出了正确的结果。
但是在以下情况下会出现问题:
如果论文标题是单行,我事先并不知道。所以我的代码总是将前两行作为纸片返回。这可能会同时给出标题和作者姓名
paper_title
如果论文标题是三行,这同样会产生问题。
如果有超过 1 个作者,那么我的代码将不会返回正确的数据。
那么关于我如何有效地从 PDF 科学论文中获取论文标题和作者姓名等数据的任何建议?确信他们在使用 LateX 工具创建 PDF 时都遵循相同的模式。有更好的解决方案或线索吗?
请注意,我正在尝试在我网站上传的论文上执行此操作。我使用 PHP 作为服务器端语言。
谢谢