PDF Output: Add creation date

This commit is contained in:
Kovid Goyal 2013-01-10 10:50:39 +05:30
parent 1255528e8c
commit ba9fbaea64
2 changed files with 12 additions and 2 deletions

View File

@ -9,6 +9,7 @@ __docformat__ = 'restructuredtext en'
import codecs, zlib
from io import BytesIO
from datetime import datetime
from calibre.constants import plugins, ispy3
@ -74,6 +75,11 @@ def serialize(o, stream):
o.pdf_serialize(stream)
elif o is None:
stream.write_raw(b'null')
elif isinstance(o, datetime):
val = o.strftime("D:%Y%m%d%H%M%%02d%z")%min(59, o.second)
if datetime.tzinfo is not None:
val = "(%s'%s')"%(val[:-2], val[-2:])
stream.write(val.encode('ascii'))
else:
raise ValueError('Unknown object: %r'%o)

View File

@ -18,6 +18,7 @@ from calibre.ebooks.pdf.render.common import (
fmtnum)
from calibre.ebooks.pdf.render.fonts import FontManager
from calibre.ebooks.pdf.render.links import Links
from calibre.utils.date import utcnow
PDFVER = b'%PDF-1.3'
@ -259,8 +260,11 @@ class PDFStream(object):
self.objects.add(PageTree(page_size))
self.objects.add(Catalog(self.page_tree))
self.current_page = Page(self.page_tree, compress=self.compress)
self.info = Dictionary({'Creator':String(creator),
'Producer':String(creator)})
self.info = Dictionary({
'Creator':String(creator),
'Producer':String(creator),
'CreationDate': utcnow(),
})
self.stroke_opacities, self.fill_opacities = {}, {}
self.font_manager = FontManager(self.objects, self.compress)
self.image_cache = {}