microsoft / microsoft/markitdown
PdfConverter does not extract PDF metadata (title, author, creation date)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 186k
- Forks
- 13.7k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 49
Description
Feature request
The current PdfConverter extracts only the text body of a PDF. Standard PDF documents carry structured metadata in their document info dictionary: title, author, subject, keywords, creator, and creation date.
For research, legal, and document management workflows this metadata is often exactly what you need. It is also useful as context when the LLM processes the converted markdown - knowing the author and date helps with citation and provenance.
Proposed output
When PDF metadata is present, prepend a metadata block to the converted markdown:
# Document Metadata
**Title:** Annual Report 2025
**Author:** Jane Smith
**Subject:** Financial Results
**Keywords:** annual report, financials, 2025
**Created:** 2025-03-15
**Modified:** 2025-03-20
---
[body text follows]
Implementation notes
pdfminer.six (already a dependency) exposes document info via PDFDocument and resolve1. Alternatively, pypdf exposes it via reader.metadata. Either can be used without adding a new dependency.
Fields with empty or None values should be skipped. The metadata block should only appear when at least one metadata field is non-empty.
Why this matters
- Researchers converting batches of papers get author/title/year without parsing the body
- The
DocumentConverterResult.titlefield can be populated from the PDF title metadata automatically - Consistent with how
EmlConvertersurfaces email headers as structured metadata
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the PdfConverter entry point and compare how EmlConverter surfaces structured metadata. Inspect the existing pdfminer.six PDFDocument and resolve1 APIs, then verify that non-empty PDF fields produce the requested markdown block and populate DocumentConverterResult.title without adding a dependency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- content, tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100