docs: def draw(self, text1=None, text2=None, copyright=True, image=IMAGE_DEFAULT, rotate=30, opacity=0.08, compress=0,
               flatten=False, add=False):
          """
          Draw watermark PDF file.
  
          Create watermark using either a reportlabs canvas or a PIL image.
  
          :param text1: str
              Text line 1
          :param text2: str
              Text line 2
          :param copyright: bool
              Draw copyright and year to canvas
          :param image: str
              Logo image to be used as base watermark
          :param rotate: int
              Degrees to rotate canvas by
          :param opacity: float
              Watermark opacity
          :param compress: bool
              Compress watermark contents  (not entire PDF)
          :param flatten: bool
              Draw watermark with multiple layers or a single flattened layer
          :param add: bool
              Add watermark to original document
          :return: str
              Watermark PDF file full path
          """
          im_path = os.path.join(IMAGE_DIRECTORY, image)
          if os.path.isfile(im_path):
              image = im_path
  
          # Add to receipt
          if self.use_receipt:
              self.receipt.add('Text1', text1)
              self.receipt.add('Text2', text2)
              self.receipt.add('Image', os.path.basename(image))
              self.receipt.add('WM Opacity', str(int(opacity * 100)) + '%')
              self.receipt.add('WM Compression', compress)
              self.receipt.add('WM Flattening', flatten)
  
          co = CanvasConstructor(text1, text2, copyright, image, rotate, opacity, tempdir=self.tempdir)
          objects, rotate = co.img() if flatten else co.canvas()  # Run img constructor method if flatten is True
  
          # Draw watermark to file
          self.watermark = WatermarkDraw(objects, rotate=rotate, compress=compress, tempdir=self.tempdir,
                                         pagesize=Info(self.document_og).size, pagescale=True).write()
  
          if not add:
              return self.watermark
          else:
              self.add()
              return self.cleanup()