GroupDocs.Signature provides the PreviewOptions class to specify different options for managing document pages preview generation. The feature also supports archive previewing.
Here are the steps to generate a document preview with GroupDocs.Signature:
Create a new instance of the Signature class and pass the source document path as a constructor parameter.
A delegate for each page stream creation (see event handler CreatePageStream);
Image preview format - PNG / JPG / BMP;
Page numbers to process;
Custom size for preview images (if needed).
Note
Streams created by the CreatePageStream delegate will be disposed of automatically after the preview image generation. If you need to implement custom image preview stream disposal, pass an additional argument ReleaseStream to clean up resources.
GroupDocs.Signature expects CreatePageStream delegate to obtain each page stream for image preview generation process
functiongeneratePreview(){// The path to the documents directory.
constfilePath=Constants.SAMPLE_PDF;// Assuming Constants.SAMPLE_PDF is defined elsewhere
constsignature=newsignatureLib.Signature(filePath);// Create preview options object
constpreviewOption=newsignatureLib.PreviewOptions(createPageStream,releasePageStream);previewOption.setPreviewFormat(PreviewOptions.PreviewFormats.JPEG);// Generate preview
signature.generatePreview(previewOption);}functioncreatePageStream(pageNumber){constimageFilePath=path.join(Constants.OutputPath,'GeneratePreviewFolder',`image-${pageNumber}.jpg`);constfolder=path.dirname(imageFilePath);if(!fs.existsSync(folder)){fs.mkdirSync(folder,{recursive:true});}returnfs.createWriteStream(imageFilePath);}functionreleasePageStream(pageNumber,pageStream){pageStream.end();constimageFilePath=path.join(Constants.OutputPath,'GeneratePreviewFolder',`image-${pageNumber}.jpg`);console.log(`Image file ${imageFilePath} is ready for preview`);}
More resources
GitHub Examples
You may easily run the code above and see the feature in action in our GitHub examples: