Rendering
PDF rendering uses the Foxit FSRenderer engine to draw pages into FSBitmap. Render flags and options control content (page, annotations) and quality (anti-aliasing, color mode, etc.) via Core SDK.
Render content flags
Use setRenderContentFlags::
| Constant | Description |
|---|---|
FSRendererRenderPage | Page content |
FSRendererRenderAnnot | Annotations |
Combine with |:
objc
[renderer setRenderContentFlags:FSRendererRenderPage | FSRendererRenderAnnot];Render page to bitmap
objc
#import <FoxitRDK/FSPDFObjC.h>
FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/Sample.pdf"];
[doc load:nil];
FSPDFPage *page = [doc getPage:0];
[page startParse:FSPDFPageParsePageNormal pause:nil is_reparse:YES];
int pageWidth = (int)[page getWidth];
int pageHeight = (int)[page getHeight];
FSBitmap *bmp = [[FSBitmap alloc] initWithWidth:pageWidth
height:pageHeight
format:FSBitmapDIBArgb
buffer:nil
pitch:0];
[bmp fillRect:0xFFFFFFFF rect:nil];
FSRenderer *renderer = [[FSRenderer alloc] initWithBitmap:bmp is_rgb_order:YES];
[renderer setRenderContentFlags:FSRendererRenderPage | FSRendererRenderAnnot];
FSMatrix2D *matrix = [page getDisplayMatrix:0 top:0
width:pageWidth height:pageHeight
rotate:FSRotation0];
FSProgressive *progressive = [renderer startRender:page matrix:matrix pause:nil];
FSProgressState state = FSProgressiveToBeContinued;
while (state == FSProgressiveToBeContinued) {
state = [progressive resume];
}Quick render (thumbnails)
startQuickRender:matrix:pause: uses a simplified pipeline for thumbnails and similar use cases:
objc
FSRenderer *renderer = [[FSRenderer alloc] initWithBitmap:bmp is_rgb_order:YES];
[renderer setRenderContentFlags:FSRendererRenderPage];
FSProgressive *progressive = [renderer startQuickRender:page matrix:matrix pause:nil];
FSProgressState state = FSProgressiveToBeContinued;
while (state == FSProgressiveToBeContinued) {
state = [progressive resume];
}Render a single annotation
objc
FSRenderer *renderer = [[FSRenderer alloc] initWithBitmap:bmp is_rgb_order:YES];
[renderer renderAnnot:annot matrix:matrix];Color mode
| Constant | Description |
|---|---|
FSRendererColorModeNormal | Normal |
FSRendererColorModeMappingGray | Grayscale mapping |
FSRendererColorModeMapping | Custom color mapping (night mode, etc.) |
objc
[renderer setColorMode:FSRendererColorModeMapping];
[renderer setMappingModeColors:0xFF000000 foreground_color:0xFFFFFFFF];API reference
See the API reference for FSRenderer, FSBitmap, and FSMatrix2D.