Metadata-Version: 2.1
Name: pdftowrite
Version: 2021.5.3
Summary: PDF <-> Write document converter
Home-page: https://github.com/kosmospredanie/pdftowrite
Author: Космическое П.
Author-email: kosmospredanie@yandex.ru
License: MIT
Project-URL: Source, https://github.com/kosmospredanie/pdftowrite
Project-URL: Bug Tracker, https://github.com/kosmospredanie/pdftowrite/issues
Description: # pdftowrite: Annotate PDFs with Stylus Labs Write
        
        ![](pdftowrite.png)
        
        A utility that converts PDF to [Stylus Labs Write](http://www.styluslabs.com/)
        document, and vice versa.
        
        ## Annotate PDFs
        
        There are two ways to annotate PDFs.
        
        ### A. Convert PDF -> SVG -> PDF (literally)
        
        1. `pdftowrite example.pdf`: Convert *.pdf to *.svgz
        2. (Open `example.svgz` with Stylus Labs Write and write your notes)
        3. `writetopdf example.svgz -o example-annot.pdf`: Convert *.svgz to *.pdf
        
        `pdftowrite` converts PDF pages to SVG paths with invisible but selectable text
        layers, so you can preserve text as selectable characters.
        
        You should use `writetopdf` instead of Write's PDF exporter which does not
        support some features (e.g. Unicode text, multi-coords tspans, etc.).
        
        The result PDF (excluding annotations) is, however, not 100% the same as the
        original PDF. This is because:
        
        - PDF and SVG are not 100% compatible
        - Write does not support entire SVG spec, so some modifications are required for compatibility with Write
        - Original text elements are deleted. Instead, a text layer is added to the page as mentioned earlier
        
        ### B. Annotation mode
        
        1. `pdftowrite example.pdf`: Convert *.pdf to *.svgz
        2. (Open `example.svgz` with Stylus Labs Write and write your notes)
        3. `writetopdf --annot example.svgz -o example-annot.pdf`: New PDF = Original PDF + Annotations
        
        You can see that `--annot` option is added in *3*. If the option is added,
        `writetopdf` creates a new PDF by overlaying annotations on top of the original
        PDF pages. This is similar to Xournal's method.
        
        You can annotate different PDF file with `--pdf-file FILE` option. e.g.:
        
        ```
        writetopdf --annot --pdf-file example2.pdf example.svgz -o example2-annot.pdf
        ```
        
        ## Install
        
        ```
        pip install --user pdftowrite
        ```
        
        ### Requirements
        
        `pdftowrite`:
        
         * Poppler (`pdfinfo`)
         * Inkscape (either native or flatpak)
         * ImageMagick (`convert`)
         * gzip
         * lxml (libxml2, libxslt)
        
        `writetopdf`:
        
         * wkhtmltopdf
         * PDFtk(pdftk-java)
         * librsvg (`rsvg-convert`)
         * gzip
        
        You need to manually install the packages. e.g.:
        
        - Debian/Ubuntu: `sudo apt install poppler-utils inkscape imagemagick gzip libxml2-dev libxslt-dev wkhtmltopdf pdftk librsvg2-bin`
        - Fedora: `sudo dnf install poppler inkscape ImageMagick gzip libxml2-devel libxslt-devel wkhtmltopdf pdftk librsvg2-tools`
        - Arch: `sudo pacman -S poppler inkscape imagemagick gzip libxslt wkhtmltopdf pdftk librsvg`
        
        ## Usage
        
        ### pdftowrite
        
        ```
        usage: pdftowrite [-h] [-v] [-o OUTPUT] [-f] [-m {mixed,poppler,inkscape}]
                          [-C] [-d DPI] [-g PAGES] [-u NODUP_PAGES] [-Z] [-s SCALE]
                          [-x X] [-y Y] [-X XRULING] [-Y YRULING] [-l MARGIN_LEFT]
                          [-p PAPERCOLOR] [-r RULECOLOR]
                          FILE
        
        Convert PDF to Stylus Labs Write document
        
        positional arguments:
          FILE                  A pdf file
        
        optional arguments:
          -h, --help            show this help message and exit
          -v, --version         show program's version number and exit
          -o OUTPUT, --output OUTPUT
                                Specify output filename
          -f, --force           Overwrite existing files without asking
          -m {mixed,poppler,inkscape}, --mode {mixed,poppler,inkscape}
                                Specify render mode (default: mixed)
          -C, --no-compat-mode  Turn off Write compatibility mode
          -d DPI, --dpi DPI     Specify resolution for bitmaps and rasterized filters
                                (default: 96)
          -g PAGES, --pages PAGES
                                Specify pages to convert (e.g. "1 2 3", "1-3")
                                (default: all)
          -u NODUP_PAGES, --nodup-pages NODUP_PAGES
                                Specify no-dup pages (e.g. "1 2 3", "1-3") (default:
                                all)
          -Z, --nozip           Do not compress output
          -s SCALE, --scale SCALE
                                Scale page size (default: 1.0)
          -x X                  Specify the x coordinate of the viewport of <svg>
                                (default: 10.0)
          -y Y                  Specify the y coordinate of the viewport of <svg>
                                (default: 10.0)
          -X XRULING, --xruling XRULING
                                Specify x rulling (default: 0.0)
          -Y YRULING, --yruling YRULING
                                Specify y rulling (default: 40.0)
          -l MARGIN_LEFT, --margin-left MARGIN_LEFT
                                Specify margin left (default: 100.0)
          -p PAPERCOLOR, --papercolor PAPERCOLOR
                                Specify paper color (default: #FFFFFF)
          -r RULECOLOR, --rulecolor RULECOLOR
                                Specify rule color (default: #9F0000FF)
        ```
        
        ### writetopdf
        
        ```
        usage: writetopdf [-h] [-v] [--annot] [--pdf-file PDF_FILE] [-o OUTPUT] [-f]
                          [-g PAGES] [-s SCALE]
                          FILE
        
        Convert Stylus Labs Write document to PDF
        
        positional arguments:
          FILE                  A Write document
        
        optional arguments:
          -h, --help            show this help message and exit
          -v, --version         show program's version number and exit
          --annot               Use annotation mode
          --pdf-file PDF_FILE   Specify the PDF file to be annotated
          -o OUTPUT, --output OUTPUT
                                Specify output filename
          -f, --force           Overwrite existing files without asking
          -g PAGES, --pages PAGES
                                Specify pages to convert (e.g. "1 2 3", "1-3")
                                (default: all)
          -s SCALE, --scale SCALE
                                Scale page size (default: 1.0)
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
