Use Document.generate_preview to render document pages to image files (PNG, JPEG, or BMP). You configure the render with PreviewOptions and supply two callbacks: one that returns a writable stream for each page, and one that releases it after the page is written.
Render pages to PNG images
Pass the two callables directly to PreviewOptions(create_page_stream, release_page_stream) — the library invokes create_page_stream(page_number) to obtain a stream for each page and release_page_stream(page_number, page_stream) once the page has been written. Set preview_format and, optionally, page_numbers to limit which pages are rendered.
importosfromgroupdocs.annotationimportAnnotatorfromgroupdocs.annotation.optionsimportPreviewOptions,PreviewFormatsdefgenerate_document_preview():output_dir="./preview"os.makedirs(output_dir,exist_ok=True)# Track the open streams so each page's file can be closed after it is writtenopen_streams={}defcreate_page_stream(page_number):stream=open(os.path.join(output_dir,f"page_{page_number}.png"),"wb")open_streams[page_number]=streamreturnstreamdefrelease_page_stream(page_number,page_stream):stream=open_streams.pop(page_number,None)ifstream:stream.close()withAnnotator("./sample.pdf")asannotator:preview_options=PreviewOptions(create_page_stream,release_page_stream)preview_options.preview_format=PreviewFormats.PNGpreview_options.page_numbers=[1]annotator.document.generate_preview(preview_options)print(f"Generated page preview image(s) in {output_dir}.")if__name__=="__main__":generate_document_preview()
PreviewFormats supports PNG, JPEG, and BMP. Other useful PreviewOptions properties include width/height, resolution, render_comments, and render_annotations.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.