MATLAB下pdf文件操作读取示例
这里写目录标题
- 摘要
- 原文件
- 预处理为txt
- 代码实现
摘要
当遇到一些需要大量数据的项目,数据的读取与储存显得尤为重要。怎样把数据从其他格式的文件中读取,并运用到程序中是很多时候我们要解决的问题。对于平常的.txt,和.xlsx文件,MATLAB有对应的函数帮助读取,但是遇到pdf文件时MATLAB很难读取内容。本文以一个操作实例提供了一个从pdf文件中读取数据的方法。
原文件
在本文中pdf原文件部分页面如下:
这里的任务是读取目录中的部件名称,其对应的页面,以及某一页中零件的名称,其对应的件号。
预处理为txt
直接读取pdf对MATLAB来说颇为困难,所以我们将pdf手工转为有规律的txt文件。如下图所示:
可以看到我们都是以一行一行的方式列出信息,这有助于matlab中txt操作函数的执行。
还有个小细节就是每隔一定的内容就会以“!”为分界,这有助于MATLAB识别到某一部分已经读完,可以换行了。
代码实现
代码如下:
目录读取函数
function partnp=fun_getnamepagenum(filename)
fid = fopen(filename,'rt');%read text, 'rt'n= 0; s(find(isspace(s))) = [] %去除所有空格
m=0;
while ~feof(fid) % file operation, end of filestr = fgetl(fid);str(isspace(str)) = []; %去除所有空格if isempty(str)breakendif str(1)=='!'m=m+1;n=0;continue endt=find(str=='.');%if isempty(t)breakendif ~isempty(strfind(str,'0.2'))partnp{2*m,n+1}=str(1:t(2)-1);elsepartnp{2*m,n+1}=str(1:t(1)-1);endif str(end-1)=='-'partnp{2*m-1,n+1}=str2num(str(end));elsepartnp{2*m-1,n+1}=str2num(str(end-1:end)); endn=n+1;
endfclose(fid);
页面读取函数:
function cpfind= fun_getnameidx( filename )
fid = fopen(filename,'rt');%read text, 'rt'
n= 0;%文件行数,
m=0;%第几个小零件
while ~feof(fid) % file operation, end of filestr = fgetl(fid);%读取行 if isempty(str)break endif str(1)=='!'if n~=0for i=1:0.5*ncpfind{m-2,i}= cpfind{m-2,0.5*n+i};cpfind{m-2,0.5*n+i}=[];endendif length(str)==1;breakendif length(str)==2m=str2num(str(2));elsem=str2num(str(2:3));endn=0; endif str(1)~='!'str(isspace(str)) = []; %去除所有空格t=find(str=='.');if isempty(t)cpfind{m-1,n+1}=str;elseif t(1)==2&&(str(1)=='0'||str(1)=='1')cpfind{m-2,n+1}=str(1:t(2)-1);elseif t(1)==1&&str(2)=='0'cpfind{m-2,n+1}=str(2:t(3)-1);elseif t(1)==1&&t(2)>2cpfind{m-2,n+1}=str(2:t(2)-1); elseif t(1)==1&&t(2)==2&&t(3)>3cpfind{m-2,n+1}=str(3:t(3)-1); elseif t(1)==1&&t(2)==2&&t(3)==3cpfind{m-2,n+1}=str(4:t(4)-1); elseif t(1)==1&&t(2)==2&&t(3)==3&&t(4)==4cpfind{m-2,n+1}=str(5:t(5)-1); else cpfind{m-2,n+1}=str(1:t(1)-1);endn=n+1;end
endfclose(fid);
end
使用时只用在脚本文件中输入填入文件名的函数即可。
结果如下:
MATLAB下pdf文件操作读取示例相关推荐
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- python 读取pdf cid_python使用pdfminer解析pdf文件的方法示例
最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...
- matlab处理记事本数据库,如何从Matlab的记事本文件中读取大块数据?
如何从Matlab的记事本文件中读取大块数据? 我的数据采用以下格式: TABLE NUMBER 1 FILE: name_1 name_2 TIME name_3 day name_4 -0.01 ...
- SpringBoot打开resources目录下的文件操作
SpringBoot打开resources目录下的文件操作 背景 我想在SpringBoot项目中放入一个静态文件.json文件.然后在SpringBoot项目内可以打开并读取此json文件. [外链 ...
- matlab从csv文件中读取时间转换异常
matlab 从 csv 文件中读取时间转换异常 最近一段时间一直在研究 matlab 读取各种数据,自以为文件读取的水平还行.可是,昨天,帮朋友读取一个 csv 文件时,时间转换却让我感到非常奇怪. ...
- VC之PDF文件操作
PDF文件是我们常用的文件,本文简单介绍下PDF文件的操作. 首先,我们需要PDF的库文件--PDFLib 在网上搜索,就可下载 然后,新建对话框应用程序,将库文件拷贝到我们的工程中,并且添加到工 ...
- Linux下对文件操作时出现乱码怎么办?
Linux下对文件操作经常会遇见乱码问题,我在网上搜了一些解决方法,希望能对大家有所帮助. 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中 ...
- php遍历文件夹下文件内容_php遍历文件夹下所有文件的代码示例
本篇文章给大家带来的内容是关于php遍历文件夹下所有文件的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 不论是面试还是正常工作需要都会用到遍历文件夹下的所有文件,今天就记录 ...
- linux下怎么批量命名文件,linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
最新文章
- 【Teradata】grouping和rollup窗口函数
- bLue的二叉树_JAVA
- centos 日志切割_centos自带的日志切割工具 --- logrotate
- ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战
- Asp.net Core 添加 EF 工具并执行初始迁移错误解决方法(Add-Migration Initial---Build failed.)
- 船舶照明行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 排序算法——直接选择排序
- brew切换到清华源
- 高斯消去法,列主元法,LU分解法python程序
- i5 8300 JAVA开发_八代标压i5-8300H和i7-8750H,哪个更值得入手?
- 中债估值 收益率_收债
- Tensorflow之搭建神经网络八股
- codeforces 1553B Reverse String
- 华为在鸿蒙的另一张王牌,麒麟芯成绝唱后,华为终于还是,甩出了另外一张王牌...
- 语法分析-自上而下分析 知识总结
- PicGo配置(gitee)
- iOS关于时间的处理
- 贵大计算机学院张达敏,贵大计算机研究生怎么样?
- 计算机组装后 无法开机原因,电脑组装完毕之后点不亮怎么办?新电脑组装好开不了机的解决办法...
- arcgis如何做lisa集聚图_GeoDa 制作北京LISA集聚图,显示错误,如图,怎样处理?...
热门文章
- Vue 实例之数据绑定,事件,组件,生命周期!!!
- 什么是COM,如何使用COM
- 学生会部门职位竞选PPT模板
- 年底跳槽!工资翻 3 倍!
- 兆骑科创高层次人才引进服务平台,创业大赛,云路演
- 自定义布局Dialog 自定义dialog右上角带叉号的dialog 点击右上角叉号关闭dialog
- Focusky教程 | 软件免费注册登录
- 2019全国计算机大赛二等奖,喜讯!这次是2019年TI杯全国大学生电子设计竞赛全国二等奖...
- 天津理工大学c语言实验报告8,天津理工大学-c语言上机报告4.doc
- 【Unity项目优化宝典】Unity3d打包后移动端启动黑屏时间太久