If omitted, autodetection is performed
:type level: string
:param metadata: optional dict with user defined PDF metadata
- for fields "author", "keywords", "title" and "subject". If metadata is None (default value),
+ for fields "author", "keywords", "title", "subject", "creator" and "producer". If metadata is None (default value),
this lib will generate some metadata by extracting relevant info from the Factur-X/Order-X XML.
Here is an example for the metadata argument:
```
'author': 'MyCompany',
'keywords': 'Factur-X, Invoice',
'title': 'MyCompany: Invoice I1242',
+ 'creator': 'My Company Application',
+ 'producer': 'My company Accountant',
'subject':
'Factur-X invoice I1242 dated 2017-08-17 issued by MyCompany',
}
return {
"/Author": pdf_metadata.get("author", ""),
"/CreationDate": pdf_date,
- "/Creator": "python-drafthorse",
+ "/Creator": pdf_metadata.get("creator", "python-drafthorse"),
"/Keywords": pdf_metadata.get("keywords", ""),
"/ModDate": pdf_date,
"/Subject": pdf_metadata.get("subject", ""),
title=pdf_metadata.get("title", ""),
author=pdf_metadata.get("author", ""),
subject=pdf_metadata.get("subject", ""),
- producer="pypdf",
- creator_tool="python-drafthorse",
+ producer=pdf_metadata.get("producer", "pypdf"),
+ creator_tool=pdf_metadata.get("creator", "python-drafthorse"),
timestamp=datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00"),
urn="urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#",
documenttype="INVOICE",
"keywords": metadata.get("keywords", "Factur-X"),
"title": metadata.get("title", number),
"subject": metadata.get("subject", number),
+ "producer": metadata.get("producer", "pypdf"),
+ "creator": metadata.get("creator", "python-drafthorse"),
}
# get profile