Python module to drive the awesome pdftk binary.
Proudly brought to you by the revolunet team
Fill a PDF with given data and returns the output PDF path
pdf_path
: input PDFdatas
: dictionnary of fielf names / valuesout_file
(default=auto) : output PDF path. will use tempfile if not providedflatten
(default=True) : flatten the final PDF
Merge multiple PDFs into one single file and returns the output PDF path
files
: list of PDF files to concatenateout_file
(default=auto) : output PDF path. will use tempfile if not provided
Split a single PDF in many pages and return a list of pages paths
pdf_path
: input PDFout_dir
(default=auto) : output PDFs dir. will use tempfile if not provided
warning if you give a out_dir parameter, ensure its empty, or the split function may destroy your files and return incorrect results.
Generate a XFDF file suited for filling PDF forms and return the generated XFDF file path
datas
: dictionnary of datas
Return the number of pages for a given PDF
pdf_path
: input PDF file
Replace a page in a PDF (pdf_path) by the PDF pointed by pdf_to_insert_path.
pdf_path
is the PDF that will have its page replaced.page_number
is the number of the page in pdf_path to be replaced. It is 1-based.pdf_to_insert_path
is the PDF that will be inserted at the old page.
Applies a stamp (from stamp_pdf_path
) to the PDF file in pdf_path
. If no output_pdf_path
is provided, it returns a temporary file with the result PDF.
These are only useful when you want to edit PDF code in a text
editor like vim or emacs. Remove PDF page stream compression by
applying the uncompress filter. Use the compress filter to
restore compression.
pdf_path
: input PDF fileout_file
(default=auto) : output PDF path. will use tempfile if not providedflatten
(default=True) : flatten the final PDF
Fill a PDF model and add a cover page :
import pypdftk
datas = {
'firstname': 'Julien',
'company': 'revolunet',
'price': 42
}
generated_pdf = pypdftk.fill_form('/path/to/model.pdf', datas)
out_pdf = pypdftk.concat(['/path/to/cover.pdf', generated_pdf])
This module is released under the permissive MIT license. Your contributions are always welcome.