Skip to main content

A tool to generate EndNote XML libraries from PDF files using DOI metadata.

Project description

EndNote Library Generator

App Icon

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.

App Main Window

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

  1. Clone or download this repository.
  2. 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

  1. Open EndNote.
  2. Go to File -> Import -> File...
  3. Choose the generated MyLibrary.xml file.
  4. Set Import Option to EndNote generated XML.
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endnote_generator-0.1.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

endnote_generator-0.1.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

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

Hashes for endnote_generator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ab5b07b3fcda0adff8c6c98683507a6ca22384256d802add5bdd9d07acc41de9
MD5 4f054c011e74d6ea42b971d43602f99d
BLAKE2b-256 84380ccacd9da113de7c284353223274baba25bf6c2b32ef1617939bea613fd6

See more details on using hashes here.

File details

Details for the file endnote_generator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for endnote_generator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf5c6d22e1a7a3c3016ecfa4639c7fac61762f90f3ef6128225771ef26159b9c
MD5 138f7710bd2d3ec81c6a12c0da075738
BLAKE2b-256 a49ace89281fc1a714dc0389cc99990535901395b507d64718d45adc2fa525d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page