【背景】

折腾:

期间,去试试使用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相关推荐

  1. datefromstring 转换不准确_免费的在线OCR工具,将图片内容转换为文本内容

    利爪按:OCR工具我不常用,但貌似有些小伙伴还是对此有着较大需求的,之前分享了一款手机端的免费OCR应用「白描」,应该一直都可以用吧?今天分享一个在线OCR的网站,不想下载软件的可以收藏一下. Eas ...

  2. openoffice jodconverter 文档转换pdf过坑记录

    文档转换性能测试 在财务系统中使用了两种PDF转换组件 一种是com.artofsolving,也是系统第一次引用的组件: <!-- https://mvnrepository.com/arti ...

  3. DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换—训练测试过程全记录

    DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换-训练&测试过程全记录 目录 apple2orange数据集 输出结果 训练&测试过 ...

  4. c html转换成word,C#实现HTML转WORD及WORD转PDF的方法

    本文实例讲述了C#实现HTML转WORD及WORD转PDF的方法.分享给大家供大家参考.具体如下: 功能:实现HTML转WORD,WORD转PDF 具体代码如下: using System; usin ...

  5. flyingsaucer转换多个html,使用 itext、flying-saucer 实现html转PDF

     itext-2.1.7高于此版本已经更新为AGPL授权,不建议使用. 所需jar包: 使用maven就简单多了,只需将一下配置加入poom.xml即可 org.xhtmlrenderer fly ...

  6. ADC芯片CS1180的读取转换错误的情况记录

    ADC芯片CS1180的读取转换错误的情况记录 一.首先使用的是芯海的CS1180芯片 二.我的配置 三.最后找到原因 今天发现了一个情况,使用ADC芯片的时候一直读取不到正确的转换值,特此记录下来提 ...

  7. mysql导入数据的格式转换_mysql数据库导入导出csv格式实现zblog转换帝国cms教程记录...

    这几天把一个网站由zblog换成帝国cms,假如成功更换,就基本上实现了所有的站都更换为帝国cms,其实zblog本身还是可以的,做小站很不错,至少比wp强很多,wp除了生态好,其它都不给力,用起来闹 ...

  8. Word控件Spire.Doc 转换教程(二十三):保留或禁用从 Word 到 PDF 转换的超链接

    超链接为读者提供了更多的附加信息,它被广泛用于我们的 word 文档.Spire.Doc 具有强大的超链接文字元素操作功能.开发者可以在word文档中添加.修改和删除超链接.Spire.Doc for ...

  9. 怎么把ppt弄成链接的形式_怎么把PPT转换成PDF?这两个工具可以实现PPT转PDF

    怎么把PPT转换成PDF?PPT和PDF是两种外观上很相似的文件,但是PPT文件的兼容性不如PDF.很多PPT文件在不同电脑或移动设备中都会出现文件内容乱码的问题.有个简单的操作可以解决这个问题,那就 ...

最新文章

  1. 大数据调度平台Airflow(五):Airflow使用
  2. 2.2. Array
  3. Mercurial 2.4.2 发布,2.5 候选版发布
  4. AssemblyExecuteAdapter
  5. Python Django URL逆向解析(通过模板页面逆向访问)代码示例
  6. Array | 74. Search a 2D Matrix
  7. java aes mysql blob_使用带有ORDER子句的AES_DECRYPT在MySQL中返回BLOB数据
  8. 【环境搭建000】详细图解ubuntu 上安装配置eclips
  9. TWaver With JavaFX
  10. 微软将开放神经网络交换格式贡献给 Linux 基金会
  11. Mybatis的简单增删查改(CRUD)
  12. 交换机端口mtu值最大_思科交换机基本配置命令全集-mtu值怎么设置
  13. 软件工程面向对象分析
  14. 浅谈CPU 硬盘 内存关系
  15. java微信小程序授权微信登录获取手机号
  16. AIO-3588MQ 车规级AI主板
  17. tomcat 乱码问题
  18. 批量识别图片大致不相同图片_电脑图片太多,其中不少是重复的,有无什么软件可以识别相同图片!...
  19. 自举开关为啥用NMOS管,不用PMOS管
  20. (字节跳动公司中山大学合作)IOS科研实训个人报告

热门文章

  1. An adaptive LeNet-5 model for anomaly detection(翻译)
  2. 解决vue项目在ie浏览器中无法显示的问题,兼容低版本浏览器问题
  3. 互联网应用:不以抄袭为耻,但以抄袭为常
  4. 技术博客|第8期:广告流量匹配算法在Hulu/Disney Streaming平台的实战
  5. mac 取消 “Ctrl+空格“切换输入法
  6. android 3d翻页动画,使用XML在Android中创建3D翻页动画
  7. [树莓派 PICO(基于MicroPython)]基础教程02-按键测试、按键控制外设LED开关
  8. MathType7安装使用及please restart word to load mathtype addin properly的问题。
  9. 深度探索C++对象模型笔记
  10. Express4.X版本修改默认模板jade为ejs并且试用html为视图模板后缀名