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 |
---|---|---|---|---|---|
bw | colorful | default | emacs | friendly | fruity |
igor | inkpot | lovelace | manni | monokai | murphy |
native | paraiso-dark | paraiso-light | pastie | perldoc | rainbow_dash |
rrt | sas | solarized-dark | solarized-light | stata | stata-dark |
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.
- The generated PDF files did not have syntax highlighting (all black-white).
- The command only supported to process a single file. Sometime, I want to process multiple code files.
- 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)