Example #1
0
output = PdfFileWriter()

# intermediate docs
intermediate = NamedTemporaryFile(mode='wb')
forefront = NamedTemporaryFile(mode='wb')

# render intermediate PDF
spawnlp(P_WAIT, 'node', 'node', 'scripts/pdf.js',
        '--output={}'.format(intermediate.name),
        '--source=file:///{}'.format(path.abspath('resume.html')))

# construct denouement
with open(intermediate.name, 'rb') as resume, open(forefront.name,
                                                   'rb') as forepart:

    intermediate.pdf = PdfFileReader(resume)
    forefront.pages = intermediate.pdf.getNumPages()

    forefront.canvas = Canvas(filename=forefront.name,
                              pagesize=A4,
                              initialFontName='Helvetica')

    # no header or footer on first page
    forefront.canvas.showPage()

    # register custom fonts
    if args.font:
        pdfmetrics.registerFont(
            TTFont('{}'.format(basename(args.font)),
                   '{}.ttf'.format(args.font)))
        forefront.canvas.setFont('{}'.format(basename(args.font)),