Convert your (Beamer) PDF slides to (Powerpoint) PPTX
So you don't like using Powerpoint and would rather use Latex/Beamer to make your slides, however, you have a fancy Surface and you want to use the pen during the presentation? Here is my solution.
This script gets a PDF file as input and generates a Powerpoint PPTX file while preserving the format of the original PDF. Theoretically all PDF files, regardless of the original generator, can be converted to PPTX slides with this (not tested though).
Simply explained, I convert all the slides to high-quality image files first, and then push them into a Powerpoint project as a slide.
- Execute
./pdf2pptx.sh test.pdf
to generate atest.pdf.pptx
file (replacetest.pdf
with your filename). - By default the output powerpoint project is in the widescreen mode. If your slides are not for widescreen you can alternatively run
./pdf2pptx.sh test.pdf notwide
to generate a 4:3 standard PPTX project.
- You need
pdftoppm
zip
andsed
- (Optional)
perl
,python
, orruby
if you use a symlink to pdf2pptx.sh
If you're using Linux, use the following command to install pdftoppm
sudo apt-get install poppler-utils
If you're using OSX, use the following command to install pdftoppm
brew install poppler
If you're using Windows you can use Cygwin, but if you don't have it already, it is not recommended! If you're using Windows 10, you can easily set up Ubuntu bash (More Info), install ImageMagick and then use the script natively. Another solution for Windows users is to access a linux box (such as your university servers) to take care of the task.
ImageMagick no longer allows PDF to image conversion. If you get the following error on the test example:
Doing test.pdf
convert: not authorized `test.pdf' @ error/constitute.c/ReadImage/412.
convert: no images defined `./test.pdf.temp/slide.png' @ error/convert.c/ConvertImageCommand/3210.
Error with extraction
in /etc/ImageMagick-6/policy.xml
or /etc/ImageMagick/policy.xml
, change:
<policy domain="coder" rights="none" pattern="PDF" />
to
<policy domain="coder" rights="read" pattern="PDF" />
Now it should work. Note that modifying the policy file would require root
privileges. If you do not have root access on your machine, you can alternatively compile and use an older version of ImageMagick.
Thanks to Melissa O'Neill for providing a Pdf2Keynote tool for mac which has motivated this small project!