Extract a separate function from tostream()

This commit is contained in:
mara004 2024-08-27 22:42:39 +02:00
parent 316629fa40
commit 8aca925ee3

View file

@ -1070,12 +1070,7 @@ class pdfdoc(object):
if iccp is not None:
self.writer.addobj(iccpdict)
def tostring(self):
stream = BytesIO()
self.tostream(stream)
return stream.getvalue()
def tostream(self, outputstream=None, return_engine_doc=False):
def todoc(self):
if self.engine == Engine.pikepdf:
PdfArray = pikepdf.Array
PdfDict = pikepdf.Dictionary
@ -1267,12 +1262,16 @@ class pdfdoc(object):
self.writer.addobj(metadata)
self.writer.addobj(iccstream)
if return_engine_doc:
return self.writer, self.output_version
# now write out the PDF
if outputstream is None:
raise TypeError("pdfdoc.tostream() requires outputstream unless return_engine_doc is True.")
def tostring(self):
stream = BytesIO()
self.tostream(stream)
return stream.getvalue()
def tostream(self, outputstream):
# write out the PDF
self.todoc() # finalize self.writer
if self.engine == Engine.pikepdf:
kwargs = {}
if pikepdf.__version__ >= "6.2.0":
@ -1281,6 +1280,7 @@ class pdfdoc(object):
outputstream, min_version=self.output_version, linearize=True, **kwargs
)
elif self.engine == Engine.pdfrw:
from pdfrw import PdfName, PdfArray
self.writer.trailer.Info = self.writer.docinfo
# setting the version attribute of the pdfrw PdfWriter object will
# influence the behaviour of the write() function
@ -2803,11 +2803,11 @@ def convert(*images, **kwargs):
)
if kwargs["outputstream"]:
pdf.tostream(outputstream=kwargs["outputstream"])
pdf.tostream(kwargs["outputstream"])
return
if kwargs["return_engine_doc"]:
return pdf.tostream(return_engine_doc=True)
return pdf.todoc()
return pdf.tostring()