LiJunjie's Blog

Home

将 PPT/PDF 转为图片(Convert PDF or PPT to Image)

21 Aug 2014

使用 docsplit 可以将 PDF/PPT 转化为 Image(JPEG, PNG等)。事实上 Docsplit 是一个很强大的工具:Docsplit is a command-line utility and Ruby library for splitting apart documents into their component parts. Under the hood, Docsplit is a thin wrapper around the excellent GraphicsMagick, Poppler, PDFTK, Tesseract, and LibreOffice libraries.

开始转 PPT 为 PNG

需要完成的工作是,客户上传一个 PPT 文件,然后 Rails 将每张 Slide 转为一个 PNG 图片。

使用命令 docsplit images example.ppt 可以完成,需要安装一种 Office (OpenOffice/LiberOffice),我们的服务器是 Ubuntu ,apt-get install liberoffice轻松安装 Office 。但是生成的图片中,中文字体都是一个个的小方块,这是因为 Ubuntu 服务器上没有中文字体,无法呈现出中文。安装中文字体:

apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy ttf-arphic-ukai

再次执行转化命令,应该就可以正确地显示中文了。

Linux 系统的字体设置很复杂,至今我也没太搞明白,可以从下面网站下载更多字体: http://wenq.org/cloud/fcdesigner_local.html

PPT 中使用的字体,在 Ubuntu 服务器上可能没有安装,这样会 Fallback 到使用系统可用的中文字体,导致生成的图片与原 PPT 中字体不一样。有两种方式可以解决这个问题:

第二种方式可以完美地在生成的图片中呈现原 PPT 的内容,这是因为 PDF(Portable Document Format) 内嵌了文档中使用的字体. Each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, graphics, and other information needed to display it.

References

comments powered by Disqus