Skip to main content

Save code files into PDF format with syntax highlighting.

Project description

PDFCode

Save code files into PDF format with syntax highlighting.

It can convert a single code file or all files in a project (folder) using one command.

Updated for MacOS M2 Chipset.


1. Installation

MacOS:

> pip install PDFCode

########################################
# install wkhtmltopdf
> brew cask reinstall wkhtmltopdf
# or
# brew install caskroom/cask/wkhtmltopdf
########################################


########################################
# install libmagic
> brew install libmagic
########################################

2. Usage

  • 2.1 Python Library
from PDFCode import PDFCode
  • 2.2 Console app. Open a terminal and type the following command:
> pdfcode --help 

# usage: PDFCode.py [-h] [--dst [DST]] [-l] [-s SIZE] [-S NAME] [-m MARGIN]
#                   [--ignore IGNORE] [-v]
#                   src

# Convert source files into .pdf with syntax highlighting

# positional arguments:
#   src                   The path of the file/folder

# optional arguments:
#   -h, --help            show this help message and exit
#   --dst [DST]           The path of the saving target folder. Empty will save
#                         to PDFCode_Results/
#   -l, --linenos         Include line numbers.
#   -s SIZE, --size SIZE  PDF size. Letter,A1,A2,A3,A4,A5, etc.
#   -S NAME, --style NAME
#                         The style name for highlighting.
#   -m MARGIN, --margin MARGIN
#                         The layout margins in inch (default 0.4in).
#   --ignore IGNORE       Ignore files whose names contain sub-string. (multiple
#                         ignore str splited using , e.g., --ignore abc,.jpg to
#                         ignore 'abc' and '.jpg')
#   -v, --version         show program's version number and exit

Example

# process single file:
> pdfcode ./test/algol.py -s a4 -S colorful --ignore .json,test

# process all files in a folder and its subfolders:
> pdfcode ./test -s a4 -S colorful 

Now, the code supports 36 styles:

abap algol algol_nu arduino autumn borland
abap algol algol_nu arduino autumn borland
bw colorful default emacs friendly fruity
bw colorful default emacs friendly fruity
igor inkpot lovelace manni monokai murphy
igor inkpot lovelace manni monokai murphy
native paraiso-dark paraiso-light pastie perldoc rainbow_dash
native paraiso-dark paraiso-light pastie perldoc rainbow_dash
rrt sas solarized-dark solarized-light stata stata-dark
rrt sas solarized-dark solarized-light stata stata-dark
stata-light tango trac vim vs xcode
stata-light tango trac vim vs xcode

3. Acknowledgements

  • This code is modified from code2pdf. I am holding this repository because the code2pdf had the following problems at the moment when I was trying to use.
    1. The generated PDF files did not have syntax highlighting (all black-white).
    2. The command only supported to process a single file. Sometime, I want to process multiple code files.
    3. The code2pdf used python2 and pyqt4. They were not easy to setup on my machine (especially pyqt4).
  • This code is implemented based on libraries like pdfkit, magic, pygments, etc. I appreciate the contributations of all of these authors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PDFCode-0.2.1.2.tar.gz (6.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page