A tool to generate EndNote XML libraries from PDF files using DOI metadata.
Project description
EndNote Library Generator
A Python tool that scans a directory of PDFs, automatically identifies their DOIs, fetches bibliographic metadata from Crossref, and generates an EndNote-compatible XML library with file attachments.
Features
- PDF Scanning: Recursive logic to find all PDFs in a folder.
- DOI Identification: Regex-based extraction of DOIs from the first few pages of each PDF.
- Metadata Fetching: Retrieves Title, Author, Year, Journal, Volume, Issue, Pages from Crossref API.
- EndNote XML Export: Generates a rich XML file that can be imported directly into EndNote.
- File Attachments: Links the original PDF files to the created EndNote records.
Installation
- Clone or download this repository.
- Install the required dependencies:
pip install -r requirements.txt
Usage
Using the Python Package
from endnote_generator import LibraryGenerator
# Initialize
generator = LibraryGenerator()
# Process a folder containing PDFs
df = generator.process_directory("path/to/your/pdf_folder")
# View results
print(df)
# Save header to EndNote XML
generator.save_library("MyLibrary.xml")
Using the GUI
To run the modern graphical interface:
python gui_app.py
- Select the folder containing your PDFs.
- Select where to save the EndNote XML.
- Click Generate Library.
Using the Jupyter Notebook
Open demo.ipynb to see a step-by-step interactive demonstration.
Importing into EndNote
- Open EndNote.
- Go to File -> Import -> File...
- Choose the generated
MyLibrary.xmlfile. - Set Import Option to
EndNote generated XML. - Click Import.
Project Structure
src/endnote_generator/: Source code package.src/endnote_generator/pdf_processor.py: Handles PDF text extraction and DOI finding.src/endnote_generator/metadata_fetcher.py: Connects to Crossref API.src/endnote_generator/endnote_writer.py: Generates the XML output.src/endnote_generator/library_manager.py: Main orchestrator.
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 endnote_generator-0.1.0.tar.gz.
File metadata
- Download URL: endnote_generator-0.1.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab5b07b3fcda0adff8c6c98683507a6ca22384256d802add5bdd9d07acc41de9
|
|
| MD5 |
4f054c011e74d6ea42b971d43602f99d
|
|
| BLAKE2b-256 |
84380ccacd9da113de7c284353223274baba25bf6c2b32ef1617939bea613fd6
|
File details
Details for the file endnote_generator-0.1.0-py3-none-any.whl.
File metadata
- Download URL: endnote_generator-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf5c6d22e1a7a3c3016ecfa4639c7fac61762f90f3ef6128225771ef26159b9c
|
|
| MD5 |
138f7710bd2d3ec81c6a12c0da075738
|
|
| BLAKE2b-256 |
a49ace89281fc1a714dc0389cc99990535901395b507d64718d45adc2fa525d6
|