如何使用ReportLab在PDF中绘制电子签名

2024-09-30 05:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

使用HTML5画布获得电子签名原始数据后,如何使用ReportLabPDF文件中绘制签名

电子签名原始数据如下所示:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAf4AAACWCAYAAAA/v+qmAAAYd0lEQVR4Xu2dT4wsuV3Hq7p7ejaw+ceGA7zRTHfNBsQK0OaEtLkgkIATJAqIPwcOXEACBByQ4AgXEBc4BCmcQELij4hgJU6shNgc2GsCQQgt01X9RjMIsZvw3m6ifdMz04U8dI9q6pXLdpVddrc/c0n2dZX98+f3K3/9s12uNOEPAhCAAAQgAIFoCKTRtJSGQgACEIAABCCQIPwEAQQgAAEIQCAiAgh/RM6mqRCAAAQgAAGEnxiAAAQgAAEIREQA4Y/I2TQVAhCAAAQggPATAxCAAAQgAIGICCD8ETmbpkIAAhCAAAQQfmIAAhCAAAQgEBEBhD8iZ9NUCEAAAhCAAMJPDEAAAhCAAAQiIoDwR+RsmgoBCEAAAhBA+IkBCEAAAhCAQEQEEP6InE1TIQABCEAAAgg/MQABCEAAAhCIiADCH5GzaSoEIAABCEAA4ScGIAABCEAAAhERQPgjcjZNhQAEIAABCCD8xAAEIAABCEAgIgIIf0TOpqkQgAAEIAABhJ8YgAAEIAABCEREAOGPyNk0FQIQgAAEIIDwEwMQgAAEIAC ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... WLU5HKOMOOVkMAAhCAgC8C8/n8n9I0/cFq/ev1+lPL5fIrvmzaaeFXbeLjMB7fYUX9EIAABOIlkGXZrydJ8oc1Ar+R57lY7/f+t3MZf9t6vjiM5+Dg4Nvffvvtd72TxQAIQAACEIiOwGw2e3U0Gomz+O//0jT90mKxeJD9+wSzU8Lftp7PBj6fYUTdEIAABCAgCGRZJkT/1QqNp+v1erZcLp+EQmhnhL9N9NnAF0o4YQcEIACBuAlsdvL/WZIkHxUk0jT97GKxeD0kKjsj/E2b+cTU/snJycGbb755ExJUbIEABCAAgXgJiB394/H4dfHqXp7nYr0/qL+dEX5Brbqpj6n9oOIIYyAAAQhAoEZADABCmuLfmrdTwi+MFpv7VqvV6vLy8gWiDAIQgAAEIAABMwI7J/xmzeNqCEAAAhCAAASqBBB+4gECEIAABCAQEQGEPyJn01QIQAACEIAAwk8MQAACEIAABCIigPBH5GyaCgEIQAACEED4iQEIQAACEIBARAQQ/oicTVMhAAEIQAACCD8xAAEIQAACEIiIAMIfkbNpKgQgAAEIQADhJwYgAAEIQAACERFA+CNyNk2FAAQgAAEIIPzEAAQgAAEIQCAiAgh/RM6mqRCAAAQgAAGEnxiAAAQgAAEIREQA4Y/I2TQVAhCAAAQggPATAxCAAAQgAIGICCD8ETmbpkIAAhCAAAQQfmIAAhCAAAQgEBEBhD8iZ9NUCEAAAhCAAMJPDEAAAhCAAAQiIvB/pBqreADY5PwAAAAASUVORK5CYII=

enter image description here


Tags: 文件imagedata原始数据pdfpng画布绘制
1条回答
网友
1楼 · 发布于 2024-09-30 05:24:38

首先,您需要base64解码数据,并将其转换为PIL图像

from base64 import b64decode
import re
from PIL import Image
import io

image_b64_data = re.search('base64,(.*)', image_data).group(1) #getting base64 string from canvas image data
image_b64_data = b64decode(image_b64_data) #decoding base64 string
image_bytes = io.BytesIO(image_b64_data) #converting data to bytes
image = Image.open(image_bytes) #making it a PIL Image as ReportLab supports PIL Image writing

#Now write the image in the canvas of PDF using ReportLab
canvas.drawInlineImage(image, x, y, width, height)
#width and height are optional, x and y are the coordinates to tell where to draw the image

相关问题 更多 >

    热门问题