microsoft / microsoft/markitdown

PdfConverter does not extract PDF metadata (title, author, creation date)

Open
#1,664 1 comment 0 reactions 0 assignees View on GitHub

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.title field can be populated from the PDF title metadata automatically
  • Consistent with how EmlConverter surfaces email headers as structured metadata

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.