
正文
php提取pdf表格数据 php读取pdf文件内容
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何从php程序读取pdf文档中的文本信息
PHP程序pdf格式文件函数库
本函数库共有65个函数
PDF是Adobe所发展的可携式文件格式,它的文件可以在网络上传输、浏览,甚至使用印表机印出,或使用其它输出装置输出,都可以保存原来的文字及图片的编排。详细的信息可以参考 Adobe 的网站。参考其中有关 PDF 或 Acrobat 的部份。
在 UNIX 系统中,可以使用 Thomas Merz 开发的 PDF 函数库。将它编译安装完成后,再编译 PHP 程序方可供 PHP 使用 pdflib。编译时可能要 JPEG library 及 TIFF library。
除了用这个函数库可以建立 PDF 文件外,FastIO 公司发展的产品 ClibPDF 也可以处理 PDF 文件。
以下为处理 PDF 文件的范例,本例对 test.pdf 加工后等待用户读取。
?php
$fp = fopen("test.pdf", "w");
$pdf = PDF_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "A HREF=getpdf.php3finished/A";
?
上例中的 gettest.php3 可能像下面的样子
?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?
PDF_get_info: 返回文件信息。
PDF_set_info_creator: 配置建档者字符串。
PDF_set_info_title: 配置文件标题。
PDF_set_info_subject: 配置文件主题。
PDF_set_info_keywords: 配置文件的关键字。
PDF_set_info_author: 配置文件作者。
PDF_open: 建立新的 PDF 档。
PDF_close: 关闭 PDF 档。
PDF_begin_page: 启始 PDF 文件页面。
PDF_end_page: 关闭 PDF 文件页面。
PDF_show: 输出字符串到 PDF 文件。
PDF_show_xy: 输出字符串到指定坐标。
PDF_set_font: 配置使用的字型及大小。
PDF_set_leading: 配置行距。
PDF_set_text_rendering: 配置文字表现方式。
PDF_set_horiz_scaling: 配置文字水平间距。
PDF_set_text_rise: 配置文字高度。
PDF_set_text_matrix: 配置文字矩阵。
PDF_set_text_pos: 配置文字位置。
PDF_set_char_spacing: 配置字符间距。
PDF_set_word_spacing: 配置字间距。
PDF_continue_text: 输出文字。
PDF_stringwidth: 计算字符串的宽度。
PDF_save: 储存环境变量。
PDF_restore: 还原环境变量。
PDF_translate: 移动原点。
PDF_scale: 缩放类。
PDF_rotate: 旋转类。
PDF_setflat: 配置平滑值。
PDF_setlinejoin: 配置连接参数。
PDF_setlinecap: 配置 linecap 参数。
PDF_setmiterlimit: 配置斜边界限。
PDF_setlinewidth: 配置线宽。
PDF_setdash: 配置虚线样式。
PDF_moveto: 配置处理的坐标点。
PDF_curveto: 绘贝氏曲线。
PDF_lineto: 绘直线。
PDF_circle: 绘圆。
PDF_arc: 绘弧。
PDF_rect: 绘长方形。
PDF_closepath: 形成封闭的向量形状。
PDF_stroke: 沿向量绘线。
PDF_closepath_stroke: 形成封闭的向量形状并沿向量绘线。
PDF_fill: 填满目前的向量。
PDF_fill_stroke: 填满目前的向量并沿向量绘线。
PDF_closepath_fill_stroke: 形成封闭的向量形状沿向量绘线并填满。
PDF_endpath: 关闭目前向量。
PDF_clip: 组合所有向量。
PDF_setgray_fill: 指定填入的颜色为灰阶。
PDF_setgray_stroke: 指定绘图的颜色为灰阶。
PDF_setgray: 指定绘图的颜色为灰阶并填入。
PDF_setrgbcolor_fill: 指定填入的颜色为彩色。
PDF_setrgbcolor_stroke: 指定绘图的颜色为彩色。
PDF_setrgbcolor: 指定绘图的颜色为彩色并填入。
PDF_add_outline: 目前页面加入书签。
PDF_set_transition: 配置页的转换。
PDF_set_duration: 配置二页的切换时间。
PDF_open_gif: 打开 GIF 图档。
PDF_open_memory_image: 打开内存图档。
PDF_open_jpeg: 打开 JPEG 图档。
PDF_close_image: 关闭图档。
PDF_place_image: 放置图片到 PDF 档指定位置。
PDF_put_image: 放置图片到 PDF 档。
PDF_execute_image: 放置 PDF 档中图片到指定位置。
PDF_add_annotation: 加入注释。
相关问答
Q1: 我想用PHP读取PDF文件的内容,尤其是现在很多的扫描后转为PDF的文件,请问怎么读?
你可以从网上找一些为PHP语言编写的 pdf 扩展库,数量不少,比如:
PHP的PDF解析库 PdfParser
PdfParser 是一个标准的 PHP 库提供个用于从 PDF 文件中抽取数据的工具。它加载 PDF 文件并解析文件中对象、头和元数据,可抽取其中的文本信息,支持压缩的 PDF、MAC OS 罗马字符集编码、8进制和16进制编码。兼容 PSR-0 和 PSR-1。
示例代码:
$document = \Smalot\PdfParser\Document::parseFile('document.pdf');
$pages = $document-getPages();
$text = $pages[1]-getText();
PHP官方里也有一个对PDF支持的库 : PDFlib, 你可以根据自己的需要和喜好来使用。
Q2: 提取PDF表格?方法很简单!
我们在工作中经常能碰到表格存储在pdf文档里的情况,要编辑文档就需要将表格提取出来,通过tabula软件提取表格然后使用openrefine来将表格整理成原来的结构是很好的方法,小伙伴们学起来吧,再也不用为碰到pdf表格发愁啦。
1.在tabula中打开 2-China_Factsheet_compressed.pdf文件。
2.框选site information 中的表格
3.点击 preview and export extract data 按钮
4.导出.csv 文件
5.在openrefine中打开 tabula-2-China_Factsheet_compressed (2)文件
6.编码选择 utf-8,Parse next 3 line(s) as column headers 将前三行组合作为列名,并创建项目
7.分析 city列 如chongqing有两个观测站的数据,但chongqing字段在两个观测值中间,无法使用edit cells - fill down 命令。
观察数据在维度列(longitude)每个城市的所有观察值的维度相同,产生想法,根据维度列 新建一个城市列 提取数值,然后根据数值应用facet-text facet 批量更改城市名称。
8.点击longitude列,选择edit column - add columns based on this column,输入正则表达式 value.match(/(\d+)o\d*’E/)[0],新建列名字是city_new。
9.点击edit column- move column to beginning 将city_new列移到最前面,删除原来的city列
10.选择 city_new列 facet - text facet 在左边选择blank 3
[图片上传失败...(image-f6e176-1605105762721)]\14.JPG)
11.选择 all列 edit rows - remove matching rows
12.选择 city_new列 facet - text facet 在左边点edit将longitude值批量修改为城市名称
13.选经度、维度列 editcells -transform 正则表达式处理value.replace("o",".").replace('’N','').toNumber()
value.replace("o",".").replace('’E','').toNumber()
14.选择Altitude列,edit cells - transform 正则 value.toNumber(),修改观察值类型。
\PDF table extract(tabula+openrefine)\25.JPG)
15.选择export - comma-seprated value 保持csv文件
php提取pdf表格数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php读取pdf文件内容、php提取pdf表格数据的信息别忘了在本站进行查找喔。







