perl 如何将PDF文件的内容提取到字符串变量中

x8diyxa7  于 2023-10-24  发布在  Perl
关注(0)|答案(2)|浏览(160)

我想知道如何做(Perl脚本)提取PDF的内容并将其插入数据库。
范例:我有一个PDF文件(见下面的例子:MyPdfFile),从这个文件中,我想提取项目代码项目(A和B),数量(3和2)和价格(10和20),并将它们插入到一个数据库(表:订单)。
MyPdfFile
先谢谢你的帮助。

owfi6suc

owfi6suc1#

简单地浏览一下,我没有看到任何现有的Perl模块能够以最小的麻烦完成您想要的任务。

my $output_of_pdftotext = `pdftotext $pdf_file`;

my @output_of_pdftotext = `pdftotext $pdf_file`;

如果你不想概括你的解决方案,只是需要一些东西来解决你眼前的问题,(我假设,这是你目前的方向,只要你使用Perl,它擅长这种用法),那么我的实际建议是,你安装Poppler的pdftotext实用程序,在你的PDF上手动尝试,看看它输出什么。然后,在Perl中给出一些最小的流畅性,你可以让你的Perl脚本模式匹配输出,并按你喜欢的方式重新格式化它。

字符编码

接着,OP问:
[T]o在stdout poppler上提取pdf的内容效果很好,但我有一个小问题,显示一些包含口音的单词例如:décement(在pdf中)= Décement在标准输出中?
utf-8字符编码使用两个字节C3 A9(十六进制)对“é”进行编码。iso-8859-1编码使用相同的两个字节对“é”进行编码。显然,您的“décury”被编码为utf-8,这是正常的,因此您的标准输出是正确的。然而,显然,您的终端想要显示iso-8859-1。如果是这样,那么您的终端误解了标准输出。
你可以告诉pdftotext使用iso-8859-1(我把它留给你作为练习,让你阅读手册页并弄清楚如何做到这一点)。然而,我的建议是你将终端设置为显示utf-8。
如何将您的终端设置为显示utf-8?这取决于您使用的终端。我不知道您的终端。在我的终端上,更改编码很容易。也许几分钟的探索和实验您的终端的首选项和设置将向您展示如何更改为utf-8。

txu3uszq

txu3uszq2#

我不得不在$pdf_file后面添加'-'以将pdf文本捕获到$output_of_pdftotext中。my $output_of_pdftotext = pdftotext $pdf_file -;用法:pdftotext [options] [PDF-file] [text-file]

相关问题