① 用python批量提取pdf的表格数据,保存为excel
pdfplumber 是一个开源 python 工具库-,可以方便地获取 pdf 的各种信息,包括文本、表格、图表、尺寸等。完成我们本文的需求,主要使用 pdfplumber 提取 pdf 表格数据。
python 中还有很多库可以处理 pdf,比如 PyPDF2、pdfminer 等,本文选择pdfplumber 的原因在于能轻松访问有关 PDF 的所有详细信息,包括作者、来源、日期等,并且用于提取文本和表格的方法灵活可定制。大家可以根据手头数据需求,再去解锁 pdfplumber 的更多用法。
② 如何在pdf文件中查找数据
要看你的PDF文件是扫描的,还是通过普通的文档(如Word)转换的,扫描的是图片,基本上不太可能实现查找
如果是正常转换的,用一般的PDF阅读器(如Adobe Reader)打开,通过菜单“编辑”-“查找”,或者Ctrl+F,或者工具栏的查找工具,既可以查找你需要的数据。
③ 如何用VBA实现打开PDF并查询数据,获取页码,或是提取该页面为新文件
打开pdf文档,查找到指定字符串,然后插入书签
以下代码先设置一个待查找字符串,用findtext方法查找,然后用createchild方法插入书签。代码的运行环境为Win8.1,Word2010 VBA,Acrobat Pro DC,在本机测试成功。
使用到的主要方法为AVDoc.FindText和BookMark.createChild。
AVDoc.FindText有4个参数:
szText,要查找的字符串
bCaseSensitive,是否区分大小写,正数为区分,0为不区分
bWholeWordsOnly,是否匹配整个单词,正数为匹配,0为不匹配
bReset,查找开始的位置,正数则从第一页开始,0则从当前页开始
BookMark.createChild有3个参数
cName,用户在导航面板中看到的书签的名称。
cExpr,单击书签时要执行的表达式,为JavaScript
nIndex,(可选)在书签的子数组中,创建新子书签的基于0的索引。默认值为0。
Sub Pdf添加书签()
'为某书添加书签
Dim App As New Acrobat.AcroApp
Dim PDoc As New Acrobat.AcroPDDoc, AVDoc As New Acrobat.AcroAVDoc
Dim Jso As Object
Dim BMark As Object '不能声明为Acrobat.AcroPDBookmark,否则createchild方法不可用。
Dim PFile As String, WordTF As String, PageNum As Long
PFile = "F:指定文件.pdf" '要插入书签的pdf文件
WordTF = "要查找的"
If PDoc.Open(PFile) Then
Set Jso = PDoc.GetJSObject
Set AVDoc = PDoc.OpenAVDoc("") '获得一个可见文档
Jso.bookmarkroot.Remove '移除原有的所有书签
End If
If AVDoc.FindText(WordTF, 0, 0, 1) Then '从第一页开始,如果找到了字符串WordTF一次
PageNum = AVDoc.GetAVPageView.GetPageNum '获得当前页码
Set BMark = Jso.bookmarkroot '设置书签根对象
BMark.createChild WordTF, "this.pageNum=" & PageNum, 0 '创建一个书签
PDoc.Save 1, PFile
End If
PDoc.Close
App.CloseAllDocs
App.Hide
App.Exit
Set AVDoc = Nothing
Set PDoc = Nothing
Set App = Nothing
Set BMark = Nothing
Set Jso = Nothing
End Sub
④ 怎么正确的从PDF中读取数据
引用 1 楼 bao22314483 的回复:将PDF转换为Excel只能用Adobe Acrobat 9 Pro手动批量转吧,代码实现不了 哦 我用的工具转的,效果还算理想吧,无乱码现象,可惜得到的Excel格式不正确。 该空行的不空,不该空行的却有空行现象,可能是导出的格式控制不好吧
⑤ 如何读取pdf图中点的准确数据
采用Acrobat中的“工具”——“测量工具”——“距离工具”,再设定比例与图相同,就可以读取了。
⑥ 怎么样获取pdf的数据
建议你是用acrobat 或者abbyy 这个 两款软件进行转换编辑
Adobe公司推出的PDF格式是一种全新的电子文档格式。借助 Acrobat ,您几乎可以用便携式文档格
adobe-acrobat-x
式 (Portable Document Format,简称 PDF) 出版所有的文档。 PDF 格式的文档能如实保留原来的面貌和内容,以及字体和图像。这类文档可通过电子邮件发送,也可将它们存储在WWW 、企业内部网、文件系统或CD-ROM上,来供其他用户在 Microsoft Windows , Mac OS和 LINUX 等平台上进行查看。由于该格式使用Adobe公司开发的PostScript页面描述语言,使得页面中的文字和图形的质量得到质的飞跃。无论您是使用PDF文档进行网上阅读,还是打印、印刷出版,Adobe Acrobat都能给你最好效果。
ABBYY 是一家俄罗斯软件公司,在文档识别,数据捕获和语言技术的开发中居世界领先地位。其获奖产品 FineReader OCR 软件可以把静态纸文件和 PDF 文件转换成可管理的电子数据,可以大大节省您的时间和精力。
⑦ Python利器:如何处理PDF表格数据
大家好,我是Peter~
在很多情况下,我们都需要处理PDF格式的文件。尤其当我们遇到PDF表格数据需要进行提取,真的是一个令人头疼的问题。
因为PDF文件不能像Word那样直接复制,即使复制了再黏贴也可能会出现格式排版错乱甚至乱码问题。如何从一个PDF文件提取出表格数据?本文提供两个解决方案:
首先提供的一种方法是从文字 PDF 中提取表格信息的工具:Camelot,它能够直接将大部分表格转换为 Pandas 的 Dataframe。
更多的详细信息,请参考项目地址: https://github.com/camelot-dev/camelot
camelot的安装有多种方式。如果有报错,网上一般有解决方式:
1、通过conda安装
2、使用pip进行安装
3、通过GitHub进行安装
首先将项目复制到本地:
然后进入文件中进行安装:
下面通过一个案例来讲解如何使用camelot。假设我们现在有一个只有一页的PDF文件test.pdf:
1、先读取文件
导出成csv格式的数据(方式1)
查看tables的相关信息:
导出方式2:
将数据转换成DataFrame:
tabula的功能比camelot更加强大,可以同时对多个表格数据进行提取。项目的具体地址请参考: https://github.com/chezou/tabula-py
tabula的安装是非常简单的:
安装之后检验这个库是否安装成功:
通过tabula这个库来读取PDF文件:
然后我们发现列表中唯一的一个元素就是dataframe:
将读取到的数据输出成CSV格式的文件:
上面读取的PDF文件是比较简单的,只有一页,而且刚好是一个很标准的表格形式的数据,下面看一个比较复杂的例子:
下面是第一页,第一列可以看成是索引:
在第二页中有两份表格,而且中间有很多的空白行:
第三页的数据比较标准:
这3页是在同一个PDF文件中,这3页是在同一个PDF文件中,这3页是在同一个PDF文件中
上面的红色提示中我们看到:当没有指定pages参数的时候,只会默认读取第一页的数据,所以列表的长度为1。
转成dataframe后将原来的索引变成新的一列 (部分数据)
通过pages来读取全部数据:
通过指定pages="all":
同时获取两个表格的数据:
通过area参数来指定:
删除在读取的表格中我们不需要的字段信息
可以将得到的数据输出成不同格式的文件,以json格式为例:
我们可以看到
⑧ 我想问下 JAVA中 如何读取PDF文件里面的内容 谁给个详细的 例子 谢谢
用Java简单的读取pdf文件中的数据:
第一步:下载PDFBox-0.7.2.jar。提供一个下载地址:http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解压后,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路径下。(我把源码以及jar包都放到下面的附件里,方面你的使用。)
第二步:写个简单的读取pdf文件的程序。(PdfReader.java)
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 输入文本文件名称
String textFile = null;
// 编码方式
String encoding = "UTF-8";
// 开始提取页数
int startPage = 1;
// 结束提取页数
int endPage = Integer.MAX_VALUE;
// 文件输入流,生成文本文件
Writer output = null;
// 内存中存储的PDF Document
PDDocument document = null;
try {
try {
// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
URL url = new URL(pdfFile);
//注意参数已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
// 获取PDF的文件名
String fileName = url.getFile();
// 以原来PDF的名称来命名新产生的txt文件
if (fileName.length() > 4) {
File outputFile = new File(fileName.substring(0, fileName
.length() - 4)
+ ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作为URL装载得到异常则从文件系统装载
//注意参数已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
if (pdfFile.length() > 4) {
textFile = pdfFile.substring(0, pdfFile.length() - 4)
+ ".txt";
}
}
// 文件输入流,写入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper来提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 设置是否排序
stripper.setSortByPosition(sort);
// 设置起始页
stripper.setStartPage(startPage);
// 设置结束页
stripper.setEndPage(endPage);
// 调用PDFTextStripper的writeText提取并输出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盘下的SpringGuide.pdf的内容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样就简单的完成了从pdf中读取数据了。在你的pdf文件所在的目录下生成一个同名的txt文件。
⑨ 如何打开PDF文件 5种方法来打开PDF文件
目录方法1:Windows计算机1、下载Adobe Reader。2、拒绝安装迈克菲(McAfee)软件。3、安装Adobe Reader后,双击PDF文件。4、如果需要的话,输入密码。5、当Windows系统询问用户使用哪个程序来打开文件时。6、需要密码的PDF文件。7、无法打开不合规范的PDF文件。方法2:Mac电脑1、双击PDF文件。2、更换打开PDF文件的阅读程序。3、如果需要的话输入密码。4、无法用Safari打开PDF文件。5、“Adobe无法打开PDF名文件因为...”.6、无法使用火狐浏览器下载PDF文件。方法3:Android设备1、下载支持PDF文件的应用程序。2、找到你想要打开的PDF文件。3、打开下载好的PDF文件时,出现“无法打开”的提示。4、PDF试图启用错误的应用。方法4:iOS1、点击你想打开的PDF文件。2、点击打开的PDF文件,打开菜单。3、点击“打开”,或分享按钮。4、选择你想使用的应用。方法5:Kindle1、将PDF文件传输到你的Kindle设备上。2、在你的Kindle设备上打开文件。PDF(便携式文件格式),是由Adobe公司开发的一种文件格式。由于PDF格式会忠实地再现原稿的每一个字符、颜色以及图象,所以常用于创建和分享电子图书和网络资料等文档。鉴于PDF是一种不同于word的文档格式,所以读者需要使用特定的软件才能读取PDF文件。也就是说只要拥有正确的软件,你就可以使用任何一台设备来打开并阅览PDF文档。
方法1:Windows计算机
1、下载Adobe Reader。它是一款可以打开并读取PDF文档的优秀阅读器软件。你可以从get.adobe.com/reader/上免费下载它。但是,你不能使用Adobe Reader来编辑、创建PDF文件。点击此处了解如何编辑PDF文件。
如果你不想安装Adobe Reader,你还可以考虑使用其它免费的PDF阅读器软件。
如果你不想使用Adobe Reader,你可以考虑使用Windows 8系统自带的PDF阅读器。
2、拒绝安装迈克菲(McAfee)软件。当你在安装Adobe Reader时,会弹出一个对话框,它会进行自动检测并在计算机上安装迈克菲软件。大部分用户都不希望协同安装迈克菲,所以确保取消安装迈克菲对话框的选择。
3、安装Adobe Reader后,双击PDF文件。一般来说,阅读器会自动打开PDF文件以供用户阅读。
4、如果需要的话,输入密码。有些用户在创建PDF文档时,为文件设置了密码保护。所以如果你想要尝试读取此类文档,你需要输入正确的密码。
检修疑难故障
1、当Windows系统询问用户使用哪个程序来打开文件时。如果你已安装Adobe Reader软件,但程序无法自动打开PDF文件的话,你需要手动选择文件的打开方式。右键点击PDF文件,选择“打开方式”。
选择程序列表中的“Adobe Reader”。
如果Adobe Reader不在列表中,那么你需要浏览并查看计算机中的Adobe Reader程序。一般来说,它被安装在C:Program Files (x86)AdobeReader路径下。
2、需要密码的PDF文件。如果需要密码才能打开PDF文件,而你恰好不知道密码的话,你只能向文件创建者索取密码或通过密码破解程序来破解文件密码,才能打开它。如果文件密码很复杂,那么密码破解程序可能需要花费好几小时或几天才能破解获得文件密码。熟知的PDF密码破解程序是由Elcomsoft开发的Advanced PDF Password Recovery 。如果你需要用到所有的密码破解工具,那么你需要花费99美元下载专业版Advanced PDF Password Recovery程序。
3、无法打开不合规范的PDF文件。Adobe阅读器会拒绝打开不合规范标准的PDF文件。这些文件多是由非官方软件创建的PDF。如果使用新版的阅读器软件来尝试打开老版的PDF文件,也可能会遭遇此类问题。尝试安装第三方PDF阅读器。还有许多不同种类的PDF阅读器,如非常受欢迎的Foxit Reader。
将PDF文件上传到谷歌云端硬盘。上传过程中,你可能会丢失部分文件格式,但是也更有可能提高文件的可读取性。
方法2:Mac电脑
1、双击PDF文件。OS X带有的Preview软件,可以打开包括PDF文件在内的多种类型的文档文件。Preview程序允许你读取PDF文件,但不能编辑PDF文件。点击此处了解如何编辑PDF文件。
2、更换打开PDF文件的阅读程序。如果你有另一种PDF读取程序,并且不想再使用 Preview程序了,那么你可以将所有PDF文件设置为使用新程序来打开文件。在文件夹中选择PDF文件,但不要打开它。
点击“文件”菜单,选择“了解更多”。
展开“打开方式”部分。
在下拉菜单中选择你想要使用的应用程序。
点击更改所有...按钮。
3、如果需要的话输入密码。PDF文件可以设置密码进行保护,以防未经授权的读者读取文件。如果你没有密码,你只能通过密码破解程序来破解文件密码,才能打开它。对于Mac电脑来说,如果你需要破解密码,你可以考虑使用iStonsoft PDF Password Remover软件。如果文件密码很复杂,那么密码破解程序可能需要花费好几小时或几天才能破解获得文件密码。
检修疑难故障
1、无法用Safari打开PDF文件。这种情况的发生是由于更新后的Safari浏览器与安装的Adobe插件不兼容或插件发生错误。你可以通过手动删除插件并重启Safari来修复该问题。打开 /Library/Internet Plugins/ ,删除AdobePDF相关插件。
打开 /User/Username/Library/Internet Plugins/ ,删除AdobePDF相关插件。
重启Safari浏览器,再次尝试打开PDF文件。
2、“Adobe无法打开PDF名文件因为...”. 这种问题常常出现在使用Safari浏览器将PDF文件另存为或“导出PDF”文件时。尝试在Safari中再次打开PDF文件。
点击位于窗口顶部的磁盘(保存)按钮,或将鼠标悬停在页面上,不久后页面底部中央的位置会出现一个保存按钮,点击该按钮即可。
将PDF文件保存在计算机上。
打开新保存的文件。
3、无法使用火狐浏览器下载PDF文件。如果你在火狐浏览器中下载PDF文件时没有任何响应,那么可能是Adobe Reader相关插件出现故障。点击火狐菜单,选择“工具”。
选择“附加组件”,然后选择“插件”。
查找“Adobe Acrobat NPAPi Plugin”,然后禁用它。
方法3:Android设备
1、下载支持PDF文件的应用程序。尽管安卓设备不带有内置的PDF文件阅读程序,但网上有大量方便好用的免费阅读器可供你选择下载。在这里向您推荐几款应用程序:Google Drive
Quickoffice
Adobe Reader
Foxit MobilePDF
2、找到你想要打开的PDF文件。对于刚下载完的PDF文件,你可以点击通知栏里刚完成下载的文件来打开它。如果你想要打开更早之前下载的PDF文件,那么点击下载文件夹中对应的文件即可。打开设备中“我的文件”或“文件管理器”。如果设备上没有文件管理器,那么可以从谷歌应用商店中免费下载一个。
打开下载文件夹。这是存储下载文件的默认路径文件夹。
点击PDF文件来打开它。如果你已选择好默认应用程序,那么会自动打开文件。如果你刚刚安装了一个PDF阅读器,或设备上有多个PDF阅读程序,那么你需要选择你想要使用的特定程序。
检修故障
1、打开下载好的PDF文件时,出现“无法打开”的提示。导致这个问题的原因有很多。尝试使用文件管理器打开下载的文件。你可以在下载文件夹中找到它。如果你可以用文件管理器打开文件,你可能需要重置浏览器。
打开设置应用重置浏览器。选择“应用”,在应用列表中找到浏览器,然后点击“清理数据”按钮。
2、PDF试图启用错误的应用。如果PDF试图用不支持读取PDF文件的应用打开,那么可能是因为设置了错误的默认打开程序。打开设置应用。
选择“应用”。
选择试图打开PDF文件的应用。
在“默认打开程序”区域中,点击“清除默认程序”。
尝试再次打开PDF文件。你可以按提示,重新选择要使用的应用。
方法4:iOS
1、点击你想打开的PDF文件。iOS系统有内置的PDF阅读器,可以打开邮件和网上的PDF文件。
2、点击打开的PDF文件,打开菜单。这样你可以用别的应用处理PDF文件。
3、点击“打开”,或分享按钮。如果你是在邮件应用中查看的PDF文件,你就可以使用分享按钮;如果是在Safari中查看的PDF文件,你就可以使用“打开”按钮。你可以看到所有支持PDF文件的应用。
4、选择你想使用的应用。你可以使用iBook、Adobe Reader或其他设备中安装应用。PDF会以你选择的应用打开。
方法5:Kindle
1、将PDF文件传输到你的Kindle设备上。事实上有很多种传输文件的方法。你可以将你的Kindle连接到电脑上,并将文件添加到Kindle存储中。点击此处了解更多细节。
你可以使用免费的Kindle传输邮件将PDF文件通过无线网络传输到设备上。点击此处了解详情。
2、在你的Kindle设备上打开文件。当你完成文件传输后,从Kindle文库中选择并打开特定PDF文件。由于无法添加更多额外功能的其他程序,所以Kindle没法实现可以与PDF进行更多的交互编辑等。
⑩ 如何从pdf中提取表格数据
可通过OCR识别从pdf中提取表格数据。常用软件有:
1、Adobe Acrobat XI Pro打开PDF文档,另存EXCEL格式。
2、用泰比(ABBYY) FineReader 11 软件,它是高智能的文本识别、文本转换和扫描识别软件。
3、用汉王PDF OCR8.1简体中文版的PDF识别软件,简单易用免费。
4、用EXCEL2013或以上版本直接打开。