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

Red_Developper

我想知道如何做(perl脚本)来提取pdf的内容并将其插入数据库。

示例:我有一个pdf文件(请参见以下示例:MyPdfFile),我要从该文件中提取商品代码商品(A和B),数量(3和2)和价格(10和20)并将其插入数据库(表:ORDERS)。

MyPdf文件

在此先感谢您的帮助。

b

简短地进行扫描,我发现没有现有的Perl模块能够以最小的麻烦完全满足您的要求。但是,在开源平台上,Poppler带来了该实用程序pdftotext没有什么可以阻止Perl通过以下方式调用pdftotext二进制文件的

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ésignation(pdf)=DÃsignation?

utf-8字符编码使用两个字节C3 A9(十六进制)对“é”进行编码。iso-8859-1编码使用相同的两个字节编码“Ô。您的“désignation”显然编码为utf-8,这是正常现象,因此您的标准输出是正确的。但是,显然,您的终端要显示iso-8859-1。如果是这样,则您的终端会误解标准输出。

您可以告诉pdftotext使用iso-8859-1(我将其留给您作为练习阅读手册页并弄清楚如何执行此操作)。但是,我的建议是改为将终端设置为显示utf-8。

如何设置终端显示utf-8?这取决于您使用的终端。我不知道你的终端。在我的终端上,更改编码很容易。可能需要几分钟的时间对终端的首选项和设置进行探索和试验,才能向您展示如何更改为utf-8。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个文件中的字符串提取到多个文件中

如何将字符串的一部分提取到变量中?

如何将字符串的各个部分提取到单独的字符串中

如何将文本文件中的字符串作为标记变量提取到电子表格中

将字符串中的单词提取到 shell 变量

将python字符串提取到变量中

将文本行提取到变量字符串中

如何将字符串中的PDF内容写入Java中的文件?

如何将字符串值提取到对象字段中

如何将子元素从XML提取到Java中的字符串?

如何将PChar的一部分提取到字符串中?

如何将括号从字符串提取到新列中

如何将字符串数组的字母提取到数组中,在 JavaScript 中按空格分隔?

如果匹配特定符号,如何将数据框中的字符串搜索并提取到新列中?

如何将文件的内容分配给进行中的openg 4gl字符串变量?

PHP-如何将字符串变量的内容用作empty()中的变量?

Java Regex:将信息从字符串提取到变量

如何将变量的内容转换为字符串?

如何将PDF文件中的行提取到csv文件中?

如何将元素,标识和类从DOM节点元素提取到字符串

如何将字符串(从Java代码)提取到HTML页面?

如何将字符串的一部分提取到chracter?

如何使用Google Docs将PDF内容提取到.txt文件中?

如何将zip文件内容提取到SD卡中?

如何将 numpy 数组的内容提取到列表中?

如何将文件内容插入bash中的字符串中

如何将二进制文件的内容放在c中的字符串中?

如何将逗号分隔的字符串列中的每个值提取到单独的行中?

如何将文件中的文本提取到变量中,同时用标记替换该文本?