Metadata-Version: 2.1
Name: PDFCode
Version: 0.1.2.1
Summary: Save code files into PDF format with syntax highlighting.
Home-page: https://github.com/xincoder/PDFCode
Author: xincoder
Author-email: xincoder@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=2.7
Description-Content-Type: text/markdown
Requires-Dist: pygments
Requires-Dist: pdfkit
Requires-Dist: file-magic
Requires-Dist: markdown

### 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. 

___

### 1. Installation


#### MacOS:
``` Bash
> 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
``` python
from PDFCode import PDFCode
```

- 2.2 Console app. Open a terminal and type the following command:
``` bash
> 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 

``` bash 
# 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](https://pypi.org/project/Code2pdf/). I am holding this repository because the [code2pdf](https://pypi.org/project/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.

___



