pdfminer转换PDF为html,【记录】尝试使用pyPdf将不可复制的PDF转换为文本或HTML
【背景】
折腾:
期间,去试试使用pyPdf去把一个不可复制的PDF文件,转换为文本或HTML。
【折腾过程】
1.参考:
去找到:
并下载:
2.但是安装时找不到Python:
看来是:
我此处安装的x64的python,此处无法识别啊。。。
3.重新下载:
然后去解压安装:D:\tmp\dev_tools\python\pdf\pyPdf-1.13\pyPdf-1.13>python setup.py install
running install
running build
running build_py
creating build
creating build\lib
creating build\lib\pyPdf
copying pyPdf\filters.py -> build\lib\pyPdf
copying pyPdf\generic.py -> build\lib\pyPdf
copying pyPdf\pdf.py -> build\lib\pyPdf
copying pyPdf\utils.py -> build\lib\pyPdf
copying pyPdf\xmp.py -> build\lib\pyPdf
copying pyPdf\__init__.py -> build\lib\pyPdf
running install_lib
creating D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\filters.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\generic.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\pdf.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\utils.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\xmp.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
copying build\lib\pyPdf\__init__.py -> D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\filters.py to filters.pyc
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\generic.py to generic.pyc
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\pdf.py to pdf.pyc
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\utils.py to utils.pyc
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\xmp.py to xmp.pyc
byte-compiling D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf\__init__.py to __init__.pyc
running install_egg_info
Writing D:\tmp\dev_install_root\Python27_x64\Lib\site-packages\pyPdf-1.13-py2.7.egg-info
然后去试试。#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Function:
【未解决】将不可拷贝复制的PDF中的表格数据导出并转换为xml格式数据
https://www.crifan.com/non_copy_pdf_table_data_export_to_xml
Author: Crifan Li
Version: 2014-01-26
Contact: https://www.crifan.com/about/me
"""
import os
import glob
from pyPdf import PdfFileReader
def pdf_table_to_xml():
"""Operate PDF file, extract table data, save to xml"""
parent = "D:/tmp/tmp_dev_root/python/answer_question/self/pdf_table_to_xml/pdf"
os.chdir(parent)
pdfFilename = "spec183r21.0.pdf";
filename = os.path.abspath(pdfFilename)
input = PdfFileReader(file(filename, "rb"))
for page in input.pages:
print page.extractText()
if __name__ == "__main__":
pdf_table_to_xml();
结果运行出错,说是没解密:D:\tmp\tmp_dev_root\python\answer_question\self\pdf_table_to_xml>pdf_table_to_xml.py
Traceback (most recent call last):
File "D:\tmp\tmp_dev_root\python\answer_question\self\pdf_table_to_xml\pdf_table_to_xml.py", line 29, in
pdf_table_to_xml();
File "D:\tmp\tmp_dev_root\python\answer_question\self\pdf_table_to_xml\pdf_table_to_xml.py", line 25, in pdf_table_to_xml
for page in input.pages:
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\utils.py", line 78, in __getitem__
len_self = len(self)
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\utils.py", line 73, in __len__
return self.lengthFunction()
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\pdf.py", line 431, in getNumPages
self._flatten()
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\pdf.py", line 596, in _flatten
catalog = self.trailer["/Root"].getObject()
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\generic.py", line 480, in __getitem__
return dict.__getitem__(self, key).getObject()
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\generic.py", line 165, in getObject
return self.pdf.getObject(self).getObject()
File "D:\tmp\dev_install_root\Python27_x64\lib\site-packages\pyPdf\pdf.py", line 655, in getObject
raise Exception, "file has not been decrypted"
Exception: file has not been decrypted
4.然后再去解决上述问题:
没找到解决办法。
其中:
说是,其代码对于其他pdf正常,所以无视此bug。。。
【总结】
目前也是无法通过pyPdf将上述不可拷贝的pdf转换为想要的文本或html。
pdfminer转换PDF为html,【记录】尝试使用pyPdf将不可复制的PDF转换为文本或HTML相关推荐
- datefromstring 转换不准确_免费的在线OCR工具,将图片内容转换为文本内容
利爪按:OCR工具我不常用,但貌似有些小伙伴还是对此有着较大需求的,之前分享了一款手机端的免费OCR应用「白描」,应该一直都可以用吧?今天分享一个在线OCR的网站,不想下载软件的可以收藏一下. Eas ...
- openoffice jodconverter 文档转换pdf过坑记录
文档转换性能测试 在财务系统中使用了两种PDF转换组件 一种是com.artofsolving,也是系统第一次引用的组件: <!-- https://mvnrepository.com/arti ...
- DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换—训练测试过程全记录
DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换-训练&测试过程全记录 目录 apple2orange数据集 输出结果 训练&测试过 ...
- c html转换成word,C#实现HTML转WORD及WORD转PDF的方法
本文实例讲述了C#实现HTML转WORD及WORD转PDF的方法.分享给大家供大家参考.具体如下: 功能:实现HTML转WORD,WORD转PDF 具体代码如下: using System; usin ...
- flyingsaucer转换多个html,使用 itext、flying-saucer 实现html转PDF
itext-2.1.7高于此版本已经更新为AGPL授权,不建议使用. 所需jar包: 使用maven就简单多了,只需将一下配置加入poom.xml即可 org.xhtmlrenderer fly ...
- ADC芯片CS1180的读取转换错误的情况记录
ADC芯片CS1180的读取转换错误的情况记录 一.首先使用的是芯海的CS1180芯片 二.我的配置 三.最后找到原因 今天发现了一个情况,使用ADC芯片的时候一直读取不到正确的转换值,特此记录下来提 ...
- mysql导入数据的格式转换_mysql数据库导入导出csv格式实现zblog转换帝国cms教程记录...
这几天把一个网站由zblog换成帝国cms,假如成功更换,就基本上实现了所有的站都更换为帝国cms,其实zblog本身还是可以的,做小站很不错,至少比wp强很多,wp除了生态好,其它都不给力,用起来闹 ...
- Word控件Spire.Doc 转换教程(二十三):保留或禁用从 Word 到 PDF 转换的超链接
超链接为读者提供了更多的附加信息,它被广泛用于我们的 word 文档.Spire.Doc 具有强大的超链接文字元素操作功能.开发者可以在word文档中添加.修改和删除超链接.Spire.Doc for ...
- 怎么把ppt弄成链接的形式_怎么把PPT转换成PDF?这两个工具可以实现PPT转PDF
怎么把PPT转换成PDF?PPT和PDF是两种外观上很相似的文件,但是PPT文件的兼容性不如PDF.很多PPT文件在不同电脑或移动设备中都会出现文件内容乱码的问题.有个简单的操作可以解决这个问题,那就 ...
最新文章
- 大数据调度平台Airflow(五):Airflow使用
- 2.2. Array
- Mercurial 2.4.2 发布,2.5 候选版发布
- AssemblyExecuteAdapter
- Python Django URL逆向解析(通过模板页面逆向访问)代码示例
- Array | 74. Search a 2D Matrix
- java aes mysql blob_使用带有ORDER子句的AES_DECRYPT在MySQL中返回BLOB数据
- 【环境搭建000】详细图解ubuntu 上安装配置eclips
- TWaver With JavaFX
- 微软将开放神经网络交换格式贡献给 Linux 基金会
- Mybatis的简单增删查改(CRUD)
- 交换机端口mtu值最大_思科交换机基本配置命令全集-mtu值怎么设置
- 软件工程面向对象分析
- 浅谈CPU 硬盘 内存关系
- java微信小程序授权微信登录获取手机号
- AIO-3588MQ 车规级AI主板
- tomcat 乱码问题
- 批量识别图片大致不相同图片_电脑图片太多,其中不少是重复的,有无什么软件可以识别相同图片!...
- 自举开关为啥用NMOS管,不用PMOS管
- (字节跳动公司中山大学合作)IOS科研实训个人报告
热门文章
- An adaptive LeNet-5 model for anomaly detection(翻译)
- 解决vue项目在ie浏览器中无法显示的问题,兼容低版本浏览器问题
- 互联网应用:不以抄袭为耻,但以抄袭为常
- 技术博客|第8期:广告流量匹配算法在Hulu/Disney Streaming平台的实战
- mac 取消 “Ctrl+空格“切换输入法
- android 3d翻页动画,使用XML在Android中创建3D翻页动画
- [树莓派 PICO(基于MicroPython)]基础教程02-按键测试、按键控制外设LED开关
- MathType7安装使用及please restart word to load mathtype addin properly的问题。
- 深度探索C++对象模型笔记
- Express4.X版本修改默认模板jade为ejs并且试用html为视图模板后缀名