Edit 'XMP' Metadata and 'PDF' Bookmarks and Documentation Info
Overview
Edit 'XMP' metadata https://en.wikipedia.org/wiki/Extensible_Metadata_Platform in a variety of media file formats as well as edit bookmarks (aka outline aka table of contents) and documentation info entries in 'pdf' files. Can detect and use a variety of command-line tools to perform these operations such as 'exiftool' https://exiftool.sourceforge.net/, 'ghostscript' https://www.ghostscript.com/, and/or 'pdftk' https://gitlab.com/pdftk-java/pdftk.
New features
------------
- New
get_bookmarks_augmented()which augmentsget_bookmarks_pdftk()'s support for bookmark page numbers withget_bookmarks_pdftools()'s new support for whether bookmarks should start open or closed (#62). docinfo()objects now support arbitrary (non-standard) info dictionary entries (#7). Read/write support among the various backends is as follows:get_docinfo_pdftk()/set_docinfo_pdftk()support reading and writing them.get_docinfo_exiftool()/set_docinfo_exiftool()support reading and writing them.get_docinfo_pdftools()supports reading them.set_docinfo_gs()supports writing them.
Bug fixes and minor improvements
Show all changes in 0.3.1Hide the rest of the changes in 0.3.1
--------------------------------
- Fixes
set_bookmarks()bug where tempfile wasn't being deleted ifinput == output(@djvill, #63). get_bookmarks_pdftools()now reports positive/negativecount(as well asopen) usingpdftools::pdf_toc()'s newis_openlist element (#62). This requirespdftools(>= 3.8.0).get_bookmarks()now prefers the newget_bookmarks_augmented()when supported.- Calls to the
pdftkcommand-line tool to read bookmark/documentation info metadata now time out after 60s by default (configurable via thexmpdf_pdftk_timeoutoption) rather than being able to hang indefinitely on a pathological pdf outline.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
- NOTE12 OK, 1 NOTE2026-06-08
- WARNING12 OK, 1 WARNING2026-06-07
Show 1 earlier changeHide 1 earlier change
- OK14 OK2026-03-10
Documentation
- Help pages
- 15includes a package overview page
- Examples that run
- 100%13 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 91%
- Return-value docs
- 85%
- Help pages citing references
- 0%
- Introduction to xmpdf HTML
- XMP FAQ HTML
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 2
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
Commit identities over time
13 development-tooling and community-health practices detected across 8 families in the upstream repository
Checks run against github.com/trevorld/r-xmpdf on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
Funding links: GitHub Sponsors
The repository owner accepts GitHub Sponsors
Show all practicesHide 4 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-08-13Named in .Rbuildignore: .claudeNamed in .gitignore: .claudeCommits: at least 2 crediting it in the message
- Claude Sonnet 52 commits · Aug 2026
Dependencies
Installing xmpdf adds 15 packages (11 with compiled code, 17 MB of source tarballs). Heaviest: stringi 11 MB, jsonlite 1.0 MB, vctrs 1.0 MB.
Code & Tests
Datasets
People & History
Maintainer since 0.1.1 (2023)
Package metadata
- First published
- 2023-02-22
- Total releases
- 5 / 3 yrs
- License
- MIT + file LICENSE OSI · relicensed from GPL (>= 3) in 0.2.1
- Minimum R
- ≥ 2.10
- Bundled data
- 14 KB / 1 file
- Download size
- 151 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("xmpdf")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-19, which the citation names so these numbers can be found later. More on citing and the projects behind them.