PDF Liner
A simple Python tool that adds equally spaced horizontal lines to PDF files, making them perfect for printing and handwriting and taking notes on them.
Installation
Install from PyPI (Recommended)
Install pdf-liner directly from PyPI:
pip install pdf-liner
Or using pipx for isolated installation:
pipx install pdf-liner
Install from Source
- Clone the repository:
git clone https://github.com/raideno/pdf-liner.git
cd pdf-liner
- Install using Poetry:
poetry install
Or install in development mode using pip:
pip install -e .
Usage
Once installed, you can use the pdf-liner command from anywhere:
pdf-liner input.pdf
This will create input_lined.pdf with default settings (20-point spacing, 0.25 opacity).
Specify Output File
pdf-liner input.pdf -o output.pdf
# or
pdf-liner input.pdf --output output.pdf
Customize Line Spacing and Opacity
pdf-liner input.pdf -o output.pdf -s 25 -a 0.2
# or
pdf-liner input.pdf --output output.pdf --line-spacing 25 --opacity 0.2
-sor--line-spacing: Space between lines in points (default: 20)-aor--opacity: Line opacity from 0.0 to 1.0 (default: 0.25)
Enhance Bottom Lines for Better Printing
Some printers tend to fade lines at the bottom of pages. Use the -e option to make the bottom lines thicker and darker:
pdf-liner input.pdf -e 5
# or
pdf-liner input.pdf --enhance-bottom-lines 5
-eor--enhance-bottom-lines: Number of bottom lines to enhance (default: 3, set to 0 to disable)
Add Padding Pages
Add a blank lined page after each page:
pdf-liner input.pdf -p
# or
pdf-liner input.pdf --padding
Get Help
pdf-liner -h
# or
pdf-liner --help
Parameters
- input_pdf (required) - Path to the input PDF file
- -o, --output (optional) - Path for the output file (default:
input_lined.pdf) - -s, --line-spacing (optional) - Space between lines in points (default: 20)
- -a, --opacity (optional) - Line opacity from 0.0 to 1.0 (default: 0.25)
- -e, --enhance-bottom-lines (optional) - Number of bottom lines to enhance for better printing (default: 3)
- -p, --padding (optional) - Adds a white page with lines after each page
Development
Requirements
- Python 3.9+
- Poetry
Setup Development Environment
# Install Poetry if you haven't already
pip install poetry
# Install dependencies
poetry install
# Run the tool
poetry run pdf-liner input.pdf
Build the Package
poetry build
This will create distribution files in the dist/ directory.
Publishing
The package is automatically published to PyPI when a new release is created on GitHub. The workflow uses the PYPI_API_TOKEN secret configured in the repository.
To publish manually:
poetry config pypi-token.pypi YOUR_PYPI_TOKEN
poetry publish --build
License
MIT
Release files for pdf-liner 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pdf_liner-0.1.0.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pdf_liner-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.4 kB
Release files / pdf_liner-0.1.0.tar.gz
| Download URL | pdf_liner-0.1.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b539ab0027b616557082221cca5782ffa8ffae7cd527077545aa075943b11210
|
|
BLAKE2b-256 checksum How to use checksums |
03f763b0a618b9ca54c7c133fc45daace6a297543cadb12c249bbb9d514b79b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure
|
Release files / pdf_liner-0.1.0-py3-none-any.whl
| Download URL | pdf_liner-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aafee1850ae7bed0b0383bfd4b62f91093555495b370f7e36f1053df1f9f9d01
|
|
BLAKE2b-256 checksum How to use checksums |
577ff19d2aae7f8e684cf24cb3aa477d3728628158993cb4039e8717fc505c64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.12 Linux/6.11.0-1018-azure
|