diff --git a/src/img2pdf.py b/src/img2pdf.py index 5e5a640..0bf0376 100755 --- a/src/img2pdf.py +++ b/src/img2pdf.py @@ -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 + 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()