#!/usr/bin/env python """ Contains writer for writing nbconvert output to PDF. """ #----------------------------------------------------------------------------- #Copyright (c) 2013, the IPython Development Team. # #Distributed under the terms of the Modified BSD License. # #The full license is in the file COPYING.txt, distributed with this software. #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- # Imports #----------------------------------------------------------------------------- import subprocess import os from IPython.utils.traitlets import Integer, Unicode from .files import FilesWriter #----------------------------------------------------------------------------- # Classes #----------------------------------------------------------------------------- class PDFWriter(FilesWriter): """Writer designed to write to PDF files""" iteration_count = Integer(3, config=True, help=""" How many times pdflatex will be called. """) compiler = Unicode(u'pdflatex {0}', config=True, help=""" Shell command used to compile PDF.""") def write(self, output, resources, notebook_name=None, **kw): """ Consume and write Jinja output a PDF. See files.py for more... """ dest = super(PDFWriter, self).write(output, resources, notebook_name=notebook_name, **kw) command = self.compiler.format(dest) for index in range(self.iteration_count): subprocess.Popen(command, shell=True, stdout=open(os.devnull, 'wb'))