Skip to content

xincoder/PDFCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages