我编写了一个小的lambda Python函数,该函数利用pdf2image将PDF文件的页面转换为单独的JPG文件。该库是poppler-utils
,尤其是pdftoppm
的包装。在我的Ubuntu系统上可以正常工作,但是AWS Lambda当然不同。
因此,我去寻找可以在AWS Lambda的EC2实例上编译的poppler版本,并找到了过时的Poppler-build有趣的剧本。通过一些调整,我可以使用它,但是此剧本构建的Poppler版本不包含必不可少的-jpeg
标志,该标志将ppm数据直接转换为jpeg。
我曾尝试编译Poppler的较新版本,但它们似乎都涉及必须分别安装的库和C ++版本,我担心这会破坏对AWS Lambda的支持。
Poppler 0.58总是不满意
make [3]:进入目录 `/home/ec2-user/poppler3/poppler-0.58.0/poppler'CXX
libpoppler_la-SignatureInfo.lo在包含的文件中 SignatureInfo.cc:22:0:/usr/include/nss3/hasht.h:48:29:错误: 尚未声明“ PRBool” void(* destroy)(void *,PRBool);
另一方面,Poppler 0.69(最新)引起关注:
/home/ec2-user/poppler2/poppler-0.69.0/poppler/Annot.cc:在 构造函数“ DefaultAppearance :: DefaultAppearance(GooString *)”: /home/ec2-user/poppler2/poppler-0.69.0/poppler/Annot.cc:826:23:错误: “ make_unique”不是“ std”的成员 fontColor = std :: make_unique(gatof((((GooString *)daToks-> get(i-1))-> getCString())); ^ /home/ec2-user/poppler2/poppler-0.69.0/poppler/Annot.cc:826:50:错误: 预期在“>”令牌之前的主要表达式 fontColor = std :: make_unique(gatof((((GooString *)daToks-> get(i-1))-> getCString()));
这种无休止的尝试来编译库并配置各种标志和编译器等,这花了我两天的时间,我准备放弃。有人可以告诉我我在做什么错,或建议另一种有效的方法将PDF页面转换为AWS Lambda上的JPEG文件?