A macOS PDF Service to merge letterhead with printed documents
Project description
Mac-letterhead
A macOS PDF Service that automatically merges a letterhead template with printed documents.
Installation
Install the package:
uv pip install -e .
Usage
Installing a Letterhead Service
To create a PDF Service for a specific letterhead template:
uv run mac-letterhead install /path/to/your/letterhead.pdf
This will create a new PDF Service named "Letterhead " in your PDF Services directory.
Using the Letterhead Service
- Open any document you want to print with the letterhead
- Choose File > Print
- Click the PDF dropdown button
- Select "Letterhead " from the menu
- Choose where to save the merged PDF
Version Information
To check the current version:
uv run mac-letterhead --version
Error Logging
The tool logs all operations and errors to:
~/Library/Logs/Mac-letterhead/letterhead.log
If you encounter any issues while using the tool, check this log file for detailed error messages and stack traces.
Features
- Easy installation of letterhead services
- Supports multiple letterhead templates
- Maintains original PDF metadata
- Preserves PDF quality
- Shows save dialog for output location
- Proper error handling with detailed logging
- Supports --version flag
- Type hints for better code maintainability
Development
To install in development mode:
uv pip install -e .
Publishing a New Release
First-time Setup
- Create an account on PyPI if you don't have one
- Create an API token on PyPI:
- Go to https://pypi.org/manage/account/token/
- Create a token with "Upload packages" scope
- Add the token to GitHub repository secrets:
- Go to your repository's Settings > Secrets and variables > Actions
- Create a new secret named
PYPI_API_TOKEN - Paste your PyPI token as the value
Publishing a Release
-
Update the version in:
- pyproject.toml
- letterhead_pdf/init.py
- letterhead_pdf/main.py
-
Run the release script:
./tag_release.sh
This will:
- Create a git tag for the current version
- Push the tag to GitHub
- Trigger the GitHub workflow to publish to PyPI
The GitHub workflow will:
- Build the package
- Upload it to PyPI using the configured API token
- Make it available for installation via pip/uv
Troubleshooting
If you encounter any issues:
- Check the log file at
~/Library/Logs/Mac-letterhead/letterhead.log - The log contains detailed information about:
- All operations performed
- Error messages with stack traces
- Input/output file paths
- PDF processing steps
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mac_letterhead-0.1.6.tar.gz.
File metadata
- Download URL: mac_letterhead-0.1.6.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ddad586fa4a84a8099a5bafa138b1c403e3f65b313cc9cefe401ea7a1840229
|
|
| MD5 |
31ca527f97f0b69118377fd6ff548e2f
|
|
| BLAKE2b-256 |
07af2d1100e066ba9687fdeddab8d89fcd310c93d4f4279b1ceb78417f37417c
|
File details
Details for the file mac_letterhead-0.1.6-py3-none-any.whl.
File metadata
- Download URL: mac_letterhead-0.1.6-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbda9cd59ff205bd50070dea6d60e2ce76a725cc4c831ca4774dd586a1f30d35
|
|
| MD5 |
04b4a7e2c639d95aa4a152808b06c250
|
|
| BLAKE2b-256 |
bc691c6d8fe031338d9b8aec97f6d4e9fa96fd2b45dc1480976a833d375edd38
|