Convert manual creation/mod times to UTC as well

In line with the previous commit for consistency, convert the date
strings from --creationdate and --moddate to UTC as well if a timezone
is specified.
This commit is contained in:
Patrick McCarty 2023-06-10 17:26:13 -07:00
parent 1dd05cc36b
commit 9c3753ed2b

View file

@ -722,7 +722,8 @@ class pdfdoc(object):
self.writer.docinfo = PdfDict(indirect=True) self.writer.docinfo = PdfDict(indirect=True)
def datetime_to_pdfdate(dt): def datetime_to_pdfdate(dt):
return dt.strftime("%Y%m%d%H%M%S%z") dt_utc = dt.astimezone(tz=timezone.utc)
return dt_utc.strftime("%Y%m%d%H%M%S%z")
for k in ["Title", "Author", "Creator", "Producer", "Subject"]: for k in ["Title", "Author", "Creator", "Producer", "Subject"]:
v = locals()[k.lower()] v = locals()[k.lower()]
@ -732,7 +733,7 @@ class pdfdoc(object):
v = PdfString.encode(v) v = PdfString.encode(v)
self.writer.docinfo[getattr(PdfName, k)] = v self.writer.docinfo[getattr(PdfName, k)] = v
now = datetime.now(tz=timezone.utc) now = datetime.now().astimezone()
for k in ["CreationDate", "ModDate"]: for k in ["CreationDate", "ModDate"]:
v = locals()[k.lower()] v = locals()[k.lower()]
if v is None and nodate: if v is None and nodate:
@ -752,7 +753,8 @@ class pdfdoc(object):
) )
def datetime_to_xmpdate(dt): def datetime_to_xmpdate(dt):
return dt.strftime("%Y-%m-%dT%H:%M:%S%z") dt_utc = dt.astimezone(tz=timezone.utc)
return dt_utc.strftime("%Y-%m-%dT%H:%M:%S%z")
self.xmp = b"""<?xpacket begin='\xef\xbb\xbf' id='W5M0MpCehiHzreSzNTczkc9d'?> self.xmp = b"""<?xpacket begin='\xef\xbb\xbf' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'> <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>