def _generate_form(self):
font_xref = self._get_font_reference()
seal_template = PDFTemplate(pkgutil.get_data("llpdf.resources", "seal.pdft"))
seal_xref = seal_template.merge_into_pdf(self._pdf)["SealObject"]
sign_template = PDFTemplate(pkgutil.get_data("llpdf.resources", "sign_form.pdft"))
sign_template["FontXRef"] = font_xref
sign_template["SealFormXRef"] = seal_xref
signform_xref = sign_template.merge_into_pdf(self._pdf)["SignFormObject"]
signform = self._pdf.lookup(signform_xref)
signform.content[PDFName("/BBox")] = self._get_signature_bbox()
signform_data = signform.stream.decode()
(posx, posy, width, height) = self._get_signature_bbox()
signform_vars = {
"WIDTH": b"%.0f" % (width - 1),
"HEIGHT": b"%.0f" % (height - 1),
"TEXT": self._get_signing_text(),
}
for (varname, replacement) in signform_vars.items():
key = ("${" + varname + "}").encode("ascii")
signform_data = signform_data.replace(key, replacement)
signform.set_stream(EncodedObject.create(signform_data, compress = True))
return signform_xref
评论列表
文章目录