delegate for each signature stream creation (see event handler CreatePageStream);
image preview format - PNG / JPG / BMP,
signature numbers to process;
custom size of preview images (if needed).
Note
Stream that were created by CreatePageStreamdelegate will be disposed automatically once after generation of preview image. If you need to implement custom image preview stream disposing you have to pass additional argument ReleaseStream to clean up resources.
defrelease_page_stream(page_data,page_stream):page_stream.close()image_name=f"signature-{page_data.page_number}.jpg"image_file_path=os.path.join("GeneratePreviewFolder",image_name)print(f"Image file {image_file_path} is ready for preview")
Generate signature preview from file on local disk
Generate signature preview from stream with custom stream releasing delegate
importosimportgroupdocs.signatureassignaturedefget_preview():withopen("sample.pdf","rb")asstream:withsignature.Signature(stream)assign:# create preview options objectpreview_option=signature.PreviewOptions(create_page_stream,release_page_stream)preview_option.preview_format=signature.PreviewOptions.PreviewFormats.JPEG# generate previewsign.generate_preview(preview_option)defcreate_page_stream(page_data):image_name=f"signature-{page_data.page_number}.jpg"image_file_path=os.path.join("GeneratePreviewFolder",image_name)folder=os.path.dirname(image_file_path)ifnotos.path.exists(folder):os.makedirs(folder)returnopen(image_file_path,"wb")defrelease_page_stream(page_data,page_stream):page_stream.close()image_name=f"signature-{page_data.page_number}.jpg"image_file_path=os.path.join("GeneratePreviewFolder",image_name)print(f"Image file {image_file_path} is ready for preview")
Creating a signature preview with custom Resolution
importosimportgroupdocs.signatureassignature# The path to the documentsfile_path="sample.pdf"withsignature.Signature(file_path)assign:resolution=96# create preview options object# You can reuse create_page_stream and release_page_stream methods from the previous examplepreview_option=signature.PreviewOptions(create_page_stream,release_page_stream,resolution)preview_option.preview_format=signature.PreviewOptions.PreviewFormats.JPEG# generate previewsign.generate_preview(preview_option)
More resources
GitHub Examples
You may easily run the code above and see the feature in action in our GitHub examples: