# for page in reader.pages:
# output.addPage(page)
- output._header = "%PDF-1.6".encode()
+ output._header = "%PDF-1.6\r\n%\xc7\xec\x8f\xa2".encode()
output.appendPagesFromReader(reader)
original_pdf_id = reader.trailer.get('/ID')
def _prepare_pdf_metadata_txt(pdf_metadata):
- pdf_date = datetime.datetime.now().isoformat()
+ pdf_date = datetime.datetime.utcnow().strftime('D:%Y%m%d%H%M%SZ')
info_dict = {
'/Author': pdf_metadata.get('author', ''),
'/CreationDate': pdf_date,
desc_xmp.set(ns_rdf + 'about', '')
creator = etree.SubElement(desc_xmp, ns_xmp + 'CreatorTool')
creator.text = 'python-drafthorse'
- timestamp = datetime.datetime.now().isoformat()
- etree.SubElement(desc_xmp, ns_xmp + 'CreateDate').text = timestamp
- etree.SubElement(desc_xmp, ns_xmp + 'ModifyDate').text = timestamp
+ xmp_date = datetime.datetime.utcnow().replace(microsecond=0).isoformat() + '+00:00'
+ etree.SubElement(desc_xmp, ns_xmp + 'CreateDate').text = xmp_date
+ etree.SubElement(desc_xmp, ns_xmp + 'ModifyDate').text = xmp_date
# Now is the ZUGFeRD description tag
zugferd_desc = etree.SubElement(rdf, ns_rdf + 'Description', nsmap=nsmap_zf)
output_intents):
md5sum = hashlib.md5(facturx_xml_str).hexdigest()
md5sum_obj = createStringObject(md5sum)
+ pdf_date = datetime.datetime.utcnow().strftime('D:%Y%m%d%H%M%SZ')
params_dict = DictionaryObject({
#NameObject('/CheckSum'): md5sum_obj,
- NameObject('/ModDate'): createStringObject(datetime.datetime.now().isoformat()),
- NameObject('/CreationDate'): createStringObject(datetime.datetime.now().isoformat()),
+ NameObject('/ModDate'): createStringObject(pdf_date),
+ NameObject('/CreationDate'): createStringObject(pdf_date),
NameObject('/Size'): NameObject(str(len(facturx_xml_str))),
})
file_entry = DecodedStreamObject()