Settings → Export: edit or strip the metadata of exported PDF, DOCX and ODT #878

Closed
opened 2026-10-10 16:11:39 +00:00 by tiagoagueda · 0 comments
Owner

Settings → Export should let a person edit, or strip entirely, the metadata of the PDF, DOCX and ODT files they export, for their privacy.

What exists today

  • The fields written are documents/properties.py's FIELD_NAMES = ("title","author","subject","keywords","language") (#480): no date and no producing software from Postulo's own writers.
  • PDF: from the theme's <title> and <meta name=author|description|keywords> (templates/documents/themes/base_cv.html:48-56, base_letter.html:19-22); WeasyPrint adds its own producer. DOCX: docProps/core.xml (documents/docx.py:231-242). ODT: meta.xml (documents/odt.py:214-230, including meta:initial-creator).
  • No Export section in Settings today.

What would change

  • A Settings → Export page: per field, from the document (today's behaviour), a fixed value, or leave out; and one switch Strip all metadata.
  • The writers read it; the PDF path removes WeasyPrint's producer (a post-processing step, or WeasyPrint's options) when stripping.

Decisions

  • Language is also accessibility metadata (PDF/UA needs it; a screen reader reads the document in it). Recommended: Strip all keeps the language unless the person also turns it off, with a sentence saying why.
  • Per document as well as the default. Recommended: the default here, an override in the export dialog later.

Checked against main at 8c3d03570. From the maintainer's improvements list of 2026-10-07 (plugins).

*Settings → Export* should let a person edit, or strip entirely, the metadata of the PDF, DOCX and ODT files they export, for their privacy. ## What exists today - The fields written are `documents/properties.py`'s `FIELD_NAMES = ("title","author","subject","keywords","language")` (#480): no date and no producing software from Postulo's own writers. - PDF: from the theme's `<title>` and `<meta name=author|description|keywords>` (`templates/documents/themes/base_cv.html:48-56`, `base_letter.html:19-22`); **WeasyPrint adds its own producer**. DOCX: `docProps/core.xml` (`documents/docx.py:231-242`). ODT: `meta.xml` (`documents/odt.py:214-230`, including `meta:initial-creator`). - No *Export* section in Settings today. ## What would change - A *Settings → Export* page: per field, *from the document* (today's behaviour), a fixed value, or *leave out*; and one switch *Strip all metadata*. - The writers read it; the PDF path removes WeasyPrint's producer (a post-processing step, or WeasyPrint's options) when stripping. ## Decisions - **Language** is also accessibility metadata (PDF/UA needs it; a screen reader reads the document in it). Recommended: *Strip all* keeps the language unless the person also turns it off, with a sentence saying why. - **Per document** as well as the default. Recommended: the default here, an override in the export dialog later. Checked against `main` at `8c3d03570`. From the maintainer's improvements list of 2026-10-07 (plugins).
tiagoagueda added this to the 0.6.0 milestone 2026-10-10 16:11:39 +00:00
tiagoagueda modified the milestone from 0.6.0 to 0.5.0 2026-10-25 17:02:40 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#878
No description provided.