A web application for annotating links in PDF files by adding red boxes around detected links and displaying the full URL in connected text boxes.
Live application: https://pdfannotator-production.up.railway.app/
- Process multiple PDF files simultaneously
- Detects clickable links and plain text URLs/emails
- Adds visual annotations with red boxes and connected text boxes
- Downloads all annotated files as a single ZIP archive
- Preserves original filenames with "annotated_" prefix
- Python 3.7+
- Flask web framework
- PyMuPDF library
-
Install dependencies:
pip install flask pymupdf -
Run the application:
python app.py -
Open your browser to:
http://localhost:5000 -
Upload PDF files using the web interface
-
Download the annotated ZIP archive
The application is currently deployed on Railway.app. To deploy your own instance:
- Create a new Railway project
- Connect your GitHub repository
- Railway will automatically deploy the application
navigate to /terraform/AzureInstallation.md
pdf-link-annotator/
├── app.py # Main application logic
├── templates/
│ └── index.html # Web interface template
├── terraform/ # Terraform configuration for Azure
│ ├── main.tf
│ ├── variables.tf
│ ├── outputs.tf
│ └── AzureInstallation.md # Azure deployment instructions
└── README.md # This file
## Configuration
Environment variables:
- `SECRET_KEY`: Flask secret key (default: "your_secret_key_here")
- `PORT`: Application port (defaults to 5000)
## Dependencies
Create a requirements.txt file with:
Flask==2.3.2 PyMuPDF==1.22.5
Install with:
pip install -r requirements.txt