在AWS Lambda上将PDF转换为JPEG

时间:2018-09-25 06:25:46

标签: compilation aws-lambda poppler

我编写了一个小的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文件?

0 个答案:

没有答案