def main(argv=None): if argv is None: argv = sys.argv[1:] args = parser.parse_args(argv) # args.path = os.path.abspath(args.path) root_dir = os.getcwd() cache_dir = os.path.join(root_dir, args.tempdir or tempfile.mkdtemp()) if not os.path.exists(cache_dir): os.makedirs(cache_dir) elif not os.path.isdir(cache_dir): # TODO: Modify custom exception? raise Exception('{} is not directory.'.format(cache_dir)) web_resource = WebResource(args.path, args.slide) # Capture from deck2pdf.captures import find_engine if args.short: args.capture += '_short' CaptureEngine = find_engine(args.capture) if CaptureEngine is None: raise Exception('Engine name "{}" is not found.'.format(args.capture)) capture = CaptureEngine(web_resource, cache_dir) capture.capture_all(args.num) # Merge pdf_path = os.path.abspath(args.output) from reportlab.lib.pagesizes import A4, landscape from reportlab.pdfgen import canvas slide_size = calc_filled_pagesize(landscape(A4), web_resource.slide_size) pdf = canvas.Canvas(pdf_path, pagesize=slide_size, invariant=1) idx = 0 for slide in capture._slide_captures: pdf.drawImage(slide, 0, 0, slide_size[0], slide_size[1], preserveAspectRatio=True) pdf.showPage() idx += 1 pdf.save()
def test_found_ghostpy(self): from deck2pdf.captures import find_engine from deck2pdf.captures.ghostpy import CaptureEngine engine = find_engine('ghostpy') assert engine == CaptureEngine
def test_not_found(self): from deck2pdf.captures import find_engine assert find_engine('noengine') is None