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
from poppler - Alternativly you can use
convert
from ImageMagick zip
,unzip
andbase64
seq
If you're using Linux you probably already have all the above.
If you're using OSX you need to either install poppler and make sure pdftoppm
is accessible from your Terminal or install ImageMagick and make sure convert
is accessible from your Terminal.
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 by default. 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!
Thanks to Alireza Shafaei for creating the base version of this fork