PDF4Cat.doc class

Class bases

class PDF4Cat.doc.Doc(*args, **kwargs)[source]

Bases: Merger, Splitter, Crypter, Effects, PdfOptimizer

Parent class of PDF4Cat.doc submodule

class PDF4Cat.doc.Merger(*args, **kwargs)[source]

Bases: PDF4Cat

Subclass of PDF4Cat parent class

Parameters
  • doc_file (None, optional) – Document file (for multiple operations, ‘use input_doc_list’)

  • input_doc_list (list, optional) – List of input docs

  • passwd (str, optional) – Document password (for crypt/decrypt)

  • progress_callback (None, optional) – Progress callback like:

Raises

TypeError – If you use doc_file with input_doc_list (you can use only one)

merge_file_with(input_pdf, output_pdf=None) None[source]

Merge pdf with other pdf to new file

Parameters
  • input_pdf (str) – File to merge with main document

  • output_pdf (None, optional) – output_pdf (None, optional): Output pdf file

merge_files_to(output_pdf=None) None[source]

Merge pdfs with multiple pdfs to new file

Parameters

output_pdf (None, optional) – Output pdf file

class PDF4Cat.doc.Splitter(*args, **kwargs)[source]

Bases: PDF4Cat

Subclass of PDF4Cat parent class

Parameters
  • doc_file (None, optional) – Document file (for multiple operations, ‘use input_doc_list’)

  • input_doc_list (list, optional) – List of input docs

  • passwd (str, optional) – Document password (for crypt/decrypt)

  • progress_callback (None, optional) – Progress callback like:

Raises

TypeError – If you use doc_file with input_doc_list (you can use only one)

gen_split(from_pdf=None, pages: list = [], fpages: str = '{name}_{num}.pdf', start_from: int = 0) tuple[source]

Generator, generate name with BytesIO object

Parameters
  • from_pdf (None, optional) – pdf document name (default use main doc from class param)

  • pages (list, optional) – List of pages to select like [1, 3, 5, 15]

  • fpages (str, optional) – Format pdf filenames

  • start_from (int, optional) – Enumerate from n

Yields

tuple – filename, BytesIO

split_pages2zip(out_zip_file: str, pages: list = [], fpages: str = '{name}_{num}.pdf', start_from: int = 0) None[source]

Split pages to different pdfs and compress to zip

Parameters
  • out_zip_file (str) – Output zip file

  • pages (list, optional) – List of pages to select like [1, 3, 5, 15]

  • fpages (str, optional) – Format pdf filenames

  • start_from (int, optional) – Enumerate from n

class PDF4Cat.doc.Crypter(*args, **kwargs)[source]

Bases: PDF4Cat

Subclass of PDF4Cat parent class

Parameters
  • doc_file (None, optional) – Document file (for multiple operations, ‘use input_doc_list’)

  • input_doc_list (list, optional) – List of input docs

  • passwd (str, optional) – Document password (for crypt/decrypt)

  • progress_callback (None, optional) – Progress callback like:

Raises

TypeError – If you use doc_file with input_doc_list (you can use only one)

crypt_to(user_passwd: str = None, owner_passwd: str = None, perm: dict = None, crypt_type: int = 5, output_pdf: str = None) None[source]

Crypt pdf and save to file (don’t forget give password in class parameter)

Parameters
  • user_passwd (str, optional) – Pdf user password

  • owner_passwd (str, optional) – Pdf owner password

  • perm (dict, optional) – Permissions see past example - :perm

  • crypt_type (int, optional) – Crypt type, default AES256 (PDF4Cat.PDF_ENCRYPT_AES_256)

  • output_pdf (None, optional) – Output pdf file

Raises

TypeError – “Missing user and owner password!”

perm = int(PDF4Cat.PDF_PERM_ACCESSIBILITY
PDF4Cat.PDF_PERM_PRINT
PDF4Cat.PDF_PERM_COPY
PDF4Cat.PDF_PERM_ANNOTATE)
decrypt_to(output_pdf=None) None[source]

Decrypt pdf and save to file (don’t forget give password in class parameter)

Parameters

output_pdf (None, optional) – Output pdf file

class PDF4Cat.doc.Effects(*args, **kwargs)[source]

Bases: Rotate

Parent class of PDF4Cat.Doc submodule

class PDF4Cat.doc.PdfOptimizer(*args, **kwargs)[source]

Bases: PDF4Cat

Subclass of PDF4Cat parent class

Parameters
  • doc_file (None, optional) – Document file (for multiple operations, ‘use input_doc_list’)

  • input_doc_list (list, optional) – List of input docs

  • passwd (str, optional) – Document password (for crypt/decrypt)

  • progress_callback (None, optional) – Progress callback like:

Raises

TypeError – If you use doc_file with input_doc_list (you can use only one)

DeFlate_to(output_pdf=None) None[source]

Deflate pdf to file

Parameters

output_pdf (None, optional) – Output pdf file