Pdf2Image库无法读取使用DocuSign签署的PDF。

11 浏览
0 Comments

Pdf2Image库无法读取使用DocuSign签署的PDF。

我正在尝试将使用DocuSign签名的PDF转换为图像格式。我们在convert_from_path方法中遇到了错误。代码和错误如下所示:

import pdf2image
data=pdf2image.convert_from_path('name.pdf')
PDFPageCountError: 无法获取页数。
语法错误:xref表中的Gen过大(大于INT_MAX)
语法错误:找不到尾部字典
语法错误:无效的XRef条目
语法错误:无效的XRef条目
语法错误:顶级页面对象类型错误(null)
命令行错误:给定的页面范围有误:第一页(1)不能在最后一页(0)之后。

0
0 Comments

Pdf2Image library failing to read pdf signed using DocuSign的问题可能是因为Pdf2Image库版本较旧,无法正确读取使用DocuSign签名的pdf文件。解决方法是联系Pdf2Image以寻求可能的解决方案,升级Pdf2Image库版本可能会解决这个问题。

0
0 Comments

问题:使用DocuSign签署的PDF,Pdf2Image库无法读取。

原因:问题与较旧版本的poppler有关。升级到最新版本(21.03.0)可以解决问题。

解决方法:对于CentOS8系统,已经有20.11.0版本的poppler,这已足够修复问题。对于Ubuntu 20.04系统,升级poppler可能会比较困难,但参考我刚写的指导,应该能够轻松解决。

另外,如果在本地运行时使用了convert_from_bytes方法而正常工作,但在Docker容器中运行脚本时出现相同错误,可能是由于Docker容器中没有安装Poppler。可以尝试在poetry环境中添加Poppler。

0
0 Comments

Pdf2Image库无法读取使用DocuSign签名的PDF文件的问题可能是由于Poppler版本过低导致的。为了解决这个问题,可以按照以下步骤安装/升级到最新版本的Poppler/pdftoppm(本文撰写时的版本为22.11.0):

1. 首先,尝试从最新的Linux Ubuntu发行版中安装:

   # 检查当前版本
   pdftoppm -v
   # 尝试更新
   sudo apt update
   sudo apt install poppler-utils
   # 再次检查当前版本
   pdftoppm -v
   # 现在再次运行`pdftoppm`命令将PDF转换为一系列TIF文件,例如:
   pdftoppm "My PDF Password" -tiff -r 300 "in.pdf" "path/to/output/dir"
   # 或者(如果PDF没有密码):
   pdftoppm -tiff -r 300 "in.pdf" "path/to/output/dir"
   # 如果可以正常工作,问题解决!否则,通过从源代码构建来升级poppler,如下所示。
   

2. 从源代码安装以获取最新版本的poppler和pdftoppm:

- 下载源代码:

     pdftoppm -v
     wget https://poppler.freedesktop.org/poppler-22.11.0.tar.xz
     tar -xf poppler-22.11.0.tar.xz
     cd poppler-22.11.0
     mkdir -p build
     cd build
     git clone git://git.freedesktop.org/git/poppler/test
     

- 安装依赖项:

     sudo apt update
     sudo apt install \
         libfreetype-dev \
         libfontconfig-dev \
         libboost-dev \
         libpng-dev \
         zlib1g-dev \
         liblcms2-dev \
         libcurl4 \
         libcurl4-gnutls-dev
     sudo apt install \
         libjpeg-dev \
         libcairo-dev \
         libopenjp2-7-dev \
         libtiff-dev \
         libcurl4-gnutls-dev \
         libnss3-dev
     sudo apt install aptitude
     sudo aptitude install libjpeg-dev
     sudo aptitude install libcairo-dev
     sudo aptitude install libopenjp2-7-dev
     sudo aptitude install libtiff-dev
     sudo aptitude install libcurl4-gnutls-dev
     sudo aptitude install libnss3-dev
     

- 构建并安装poppler:

     cmake -DTESTDATADRIR=./test -DCMAKE_INSTALL_MANDIR:PATH=/usr/local/share/man ..
     time make
     sudo make install
     . ~/.bashrc
     sudo ldconfig $(which pdftoppm)
     pdftoppm -v
     pdftoppm "My Optional PDF Password" -tiff -r 300 "in.pdf" "path/to/output/dir"
     pdftoppm -tiff -r 300 "in.pdf" "path/to/output/dir"
     

通过按照上述步骤进行操作,应该能够解决Pdf2Image库无法读取使用DocuSign签名的PDF文件的问题。如果在构建过程中遇到资源不足的问题,可以尝试增加虚拟内存的大小。

0