|
Foxit PDF SDK
|
PDF渲染器是一个图形引擎,用于将页面渲染到位图或平台设备上下文。 此类可以用位图或设备对象构造。它提供设置渲染选项/标志和执行渲染的函数。 在此类中,有几种渲染方法:
在Foxit PDF SDK中,窗口部件注释总是与表单字段和表单控件关联。对于如何渲染 窗口部件注释,这里是推荐的流程:
| - (void) clearClips |
清除通过函数 FSRenderer::setClipRect: 设置的裁剪矩形。
| - (void) enableForPrint: | (BOOL) | is_render_for_print |
设置标志来决定是否在打印模式下进行渲染。
当当前渲染器用于打印时,请确保此渲染标志设置为预期值。 对于渲染注释,如果此标志设置为 YES,Foxit PDF SDK将仅渲染 具有注释标志 FSAnnotFlagPrint 的注释。
如果对当前渲染器对象尚未调用此函数,将使用默认值 NO。
| [in] | is_render_for_print | YES 表示在打印模式下渲染,而 NO 表示不在打印模式下渲染。 |
| - (id) initWithBitmap: | (FSBitmap*) | bitmap | |
| is_rgb_order: | (BOOL) | is_rgb_order | |
带位图的构造函数。
输入位图被视为独立设备,渲染器渲染的所有内容 都将出现在位图中。
| [in] | bitmap | 用于渲染的位图。用户应确保位图保持有效,直到 当前渲染器对象的生命周期结束。 |
| [in] | is_rgb_order | YES 表示Foxit PDF SDK在渲染时需要使用RGB字节顺序 (红色在最低位)。 NO 表示Foxit PDF SDK在渲染时需要使用BGR字节顺序 (蓝色在最低位)。 |
| - (id) initWithContext: | (CGContextRef) | context | |
| device_type: | (FSRendererDeviceType) | device_type | |
构造函数,使用设备上下文。
渲染器渲染的所有内容都会显示在 CGContextRef 对象中。
| [in] | context | 一个 CGContextRef 对象。用户应确保该设备在当前渲染器对象生命周期结束前一直有效。 |
| [in] | device_type | 参数 context 的设备类型。请参考 FSRendererDeviceXXX 的取值,且应为这些值之一。 |
| - (id) initWithOther: | (FSRenderer*) | other |
带另一个渲染器对象的构造函数。
| [in] | other | 另一个渲染器对象。 |
| - (BOOL) isEmpty |
检查当前对象是否为空。
当当前对象为空时,意味着当前对象无用。
| - (BOOL) renderAnnot: | (FSAnnot*) | annot | |
| matrix: | (FSMatrix2D*) | matrix | |
渲染指定的注释。
当调用此函数时,渲染标志(通过函数 FSRenderer::setRenderContentFlags: 设置 或默认设置)将被忽略。
| [in] | annot | 要渲染的注释对象。如果输入的注释是弹出注释,此函数将 不渲染它并返回 NO。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSPDFPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| - (BOOL) renderFormControls: | (FSPDFPage*) | page | |
| matrix: | (FSMatrix2D*) | matrix | |
渲染表单控件。
当调用此函数时,渲染标志(通过函数 FSRenderer::setRenderContentFlags: 设置或默认设置)将被忽略。
| [in] | page | 有效的PDF页面。如果输入页面无效,此函数什么也不做并直接返回 NO。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSPDFPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| - (BOOL) renderGraphicsObject: | (FSGraphicsObject*) | graphics_object | |
| page: | (FSPDFPage*) | page | |
| matrix: | (FSMatrix2D*) | matrix | |
渲染图形对象。
当调用此函数时,渲染标志(通过函数 FSRenderer::setRenderContentFlags: 设置或默认设置)将被忽略。
| [in] | graphics_object | 要渲染的有效PDF图形对象。 |
| [in] | page | 有效的PDF页面。参数 graphics_object 属于此PDF页面。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSPDFPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| - (void) setClearType: | (BOOL) | is_clear_type |
设置标志来决定是否使用ClearType类似的反锯齿来渲染文本对象。
如果不调用此函数,将使用默认值 YES。
| [in] | is_clear_type | YES 表示使用ClearType类似的反锯齿来渲染文本对象。 NO 表示不使用ClearType类似的反锯齿来渲染文本对象。 |
| - (void) setClipPathFill: | (FSPath*) | clip_path | |
| matrix: | (FSMatrix2D*) | matrix | |
| fill_mode: | (FSFillMode) | fill_mode | |
使用填充区域设置裁剪路径。
| [in] | clip_path | 裁剪路径。 |
| [in] | matrix | 用于裁剪的变换矩阵。 |
| [in] | fill_mode | 填充模式。应该是值 或 。 |
| - (void) setClipPathStroke: | (FSPath*) | clip_path | |
| matrix: | (FSMatrix2D*) | matrix | |
| graph_state: | (FSGraphState*) | graph_state | |
使用描边区域设置裁剪路径。
| [in] | clip_path | 裁剪路径。 |
| [in] | matrix | 用于裁剪的变换矩阵。 |
| [in] | graph_state | 有效的图形状态,用于画笔属性。如果为 nil,Foxit PDF SDK将 使用默认构造函数的图形状态对象。默认值:nil。 |
| - (void) setClipRect: | (FSRectI*) | clip_rect |
设置将在后续渲染过程中使用的裁剪矩形。
| [in] | clip_rect | 裁剪矩形。如果为 nil,表示在 后续渲染过程中不使用裁剪矩形。 |
| - (void) setColorMode: | (FSRendererColorMode) | color_mode |
设置颜色模式。
如果不调用此函数,将使用默认值 FSRendererColorModeNormal。
| [in] | color_mode | 颜色模式值。应该是以下值之一:
|
| - (void) setForceDownSample: | (BOOL) | is_to_force_down_sample |
设置标志来决定是否对图像拉伸使用下采样。
如果不调用此函数,将使用默认值 NO。
| [in] | is_to_force_down_sample | YES 表示对图像拉伸使用下采样。 NO 表示对图像拉伸不使用下采样。 |
| - (void) setForceHalftone: | (BOOL) | is_to_force_halftone |
设置标志来决定是否对图像拉伸使用半调。
如果不调用此函数,将使用默认值 NO。
| [in] | is_to_force_halftone | YES 表示对图像拉伸使用半调。 NO 表示对图像拉伸不使用半调。 |
| - (void) setForegroundColor: | (unsigned int) | foreground_color |
当颜色模式为 FSRendererColorModeForeground 时为文本、路径或两者设置前景颜色。
文本、路径或两者的前景颜色由函数 FSRenderer::setForegroundColorMode: 设置的前景颜色模式决定。
| [in] | foreground_color | 文本、路径或两者的前景颜色。格式:0xAARRGGBB。 |
| - (void) setForegroundColorMode: | (unsigned int) | foreground_color_mode |
当颜色模式为 FSRendererColorModeForeground 时设置渲染前景颜色模式。
如果不调用此函数,将使用默认值 (FSRendererColorModeForegroundText | FSRendererColorModeForegroundPath | FSRendererColorModeForegroundBlackText | FSRendererColorModeForegroundBlackPath)。
| [in] | foreground_color_mode | 渲染前景颜色模式。请参考从 FSRendererColorModeForegroundText 开始的值,应该是这些值中的一个或 这些值的组合。 |
| - (void) setJPEGDownSample: | (BOOL) | is_jepg_down_sample |
设置标志来决定是否对jpeg图像使用下采样。
是否对jpeg图像使用下采样将影响PDF页面的渲染结果。 当成功调用当前函数时,用户应该在再次渲染PDF页面之前 为PDF页面(已至少渲染一次)调用函数 FSPDFPage::clearRenderCache。
如果不调用此函数,将使用默认值 YES。
| [in] | is_jepg_down_sample | YES 表示对jpeg图像使用下采样。 NO 表示对jpeg图像不使用下采样。 |
| - (void) setJPXDownSample: | (BOOL) | is_jpx_down_sample |
设置标志来决定是否对jpx图像使用下采样。
是否对jpx图像使用下采样将影响PDF页面的渲染结果。 当成功调用当前函数时,用户应该在再次渲染PDF页面之前 为PDF页面(已至少渲染一次)调用函数 FSPDFPage::clearRenderCache。
如果不调用此函数,将使用默认值 YES。
| [in] | is_jpx_down_sample | YES 表示对jpx图像使用下采样。 NO 表示对jpx图像不使用下采样。 |
| - (void) setLayerContext: | (FSLayerContext*) | layer_context |
设置图层上下文到渲染上下文句柄。
为了在渲染上下文上渲染PDF页面内容时渲染一个图层, 用户应该调用此函数将图层上下文设置到渲染上下文。
| [in] | layer_context | 图层上下文对象。 |
| - (void) setMappingModeColors: | (unsigned int) | background_color | |
| foreground_color: | (unsigned int) | foreground_color | |
当颜色模式为 FSRendererColorModeMappingGray 或 FSRendererColorModeMapping 时设置背景颜色和前景颜色。
| [in] | background_color | 背景颜色。格式:0xAARRGGBB。 |
| [in] | foreground_color | 前景颜色。格式:0xAARRGGBB。 |
| - (void) setOverprint: | (BOOL) | is_to_enable_overprint |
设置标志来决定是否启用叠印。
| [in] | is_to_enable_overprint | YES 表示启用叠印。 NO 表示不启用叠印。 默认值: NO. |
| - (void) setPrintTextAsGraphic: | (BOOL) | is_to_print_text_graphic |
设置标志来决定是否将文本打印为路径或位图。
当此标志为 YES 时,Foxit PDF SDK将以不同方式渲染文本: 如果字体大小大于50,将文本打印为路径;否则,将文本打印为位图。
如果不调用此函数,将使用默认值 NO。
| [in] | is_to_print_text_graphic | YES 表示将文本打印为路径或位图。 NO 表示不将文本打印为路径或位图。 |
| - (void) setPrintTextAsImage: | (BOOL) | is_to_print_text_image |
设置标志来决定是否将文本打印为图像。
如果不调用此函数,将使用默认值 NO。
| [in] | is_to_print_text_image | YES 表示将文本打印为图像。 NO 表示不将文本打印为图像。 |
| - (void) setRenderAnnotAppearanceType: | (FSAnnotAppearanceType) | ap_type |
| - (void) setRenderAnnotsForThumbnail: | (BOOL) | is_render_annots_for_thumbnail |
设置渲染标志来决定是否在缩略图模式下渲染注释。
在缩略图模式下,注释的"NoZoom"和"NoRotate"标志将被忽略。 此渲染标志仅在使用标志 FSRendererRenderAnnot 进行渲染或 调用函数 FSRenderer::renderAnnot:matrix: 时可用。关于设置标志 FSRendererRenderAnnot 请参考函数 FSRenderer::setRenderContentFlags:。
如果不调用此函数,当此渲染标志可用时将使用默认值 NO。
| [in] | is_render_annots_for_thumbnail | YES 表示在缩略图模式下渲染注释。 NO 表示不在缩略图模式下渲染注释。 |
| - (void) setRenderContentFlags: | (unsigned int) | render_content_flags |
设置渲染标志来决定渲染什么内容。
如果不调用此函数,将使用默认值 (FSRendererRenderPage | FSRendererRenderAnnot)。
| [in] | render_content_flags | 渲染内容标志。请参考从 FSRendererRenderPage 开始的值,应该是这些值中的一个或组合。 FSRendererRenderHighlight 不能与 FSRendererRenderExceptHighlight 组合。 |
| - (void) setRenderEnhanceThinLines: | (BOOL) | is_render_enhance_thin_lines |
设置标志来决定是否增强细线。
如果不调用此函数,将使用默认值 NO。
| [in] | is_render_enhance_thin_lines | YES 表示用更粗的路径绘制零宽度线条, 使它们比默认的单像素更可见。 NO 表示用单像素宽度绘制零宽度线条。 |
| - (void) setRenderFormField: | (BOOL) | is_render_formfield |
设置标志来决定是否渲染表单字段(除签名字段外)。
如果不调用此函数,当此标志可用时将使用默认值 YES。
| [in] | is_render_formfield | YES 表示渲染表单字段(除签名字段外)。 NO 表示不渲染表单字段(除签名字段外)。 |
| - (void) setRenderImageAntiAliasing: | (BOOL) | is_render_image_antialiasing |
设置标志来决定是否绘制图像反锯齿。
如果不调用此函数,将使用默认值 YES。
| [in] | is_render_image_antialiasing | YES 表示绘制图像反锯齿,效果类似于 枚举类InterpolationFlag中定义的值。 NO 表示绘制图像锯齿。 |
| - (void) setRenderLayer: | (BOOL) | is_render_one_layer |
设置标志来决定是否渲染一个图层或所有可用图层。
如果不调用此函数,当此标志可用时将使用默认值 YES。
| [in] | is_render_one_layer | YES 表示渲染一个图层。 NO 表示渲染所有可用图层。 |
| - (void) setRenderPathAntiAliasing: | (BOOL) | is_render_path_antialiasing |
设置标志来决定是否绘制路径反锯齿。
如果不调用此函数,将使用默认值 YES。
| [in] | is_render_path_antialiasing | YES 表示绘制路径反锯齿。 NO 表示绘制路径锯齿。 |
| - (void) setRenderPathFullCovered: | (BOOL) | is_render_path_full_covered |
可应用于填充模式的特殊标志。
如果不调用此函数,将使用默认值 NO。
| [in] | is_render_path_full_covered | YES 表示路径部分覆盖的所有像素将被完全绘制,而 NO 表示不这样做。 |
| - (void) setRenderPathThinLine: | (BOOL) | is_render_path_thin_line |
设置标志来决定是否将路径绘制为细线。
如果不调用此函数,将使用默认值 NO。
| [in] | is_render_path_thin_line | YES 表示将路径绘制为细线。 NO 表示不将路径绘制为细线。 |
| - (void) setRenderSignature: | (BOOL) | is_render_signature |
设置标志来决定是否渲染签名。
如果不调用此函数,当此标志可用时将使用默认值 YES。
| [in] | is_render_signature | YES 表示渲染签名。 NO 表示不渲染签名。 |
| - (void) setRenderSignatureState: | (BOOL) | is_render_signature_state |
设置标志来决定是否在签名上绘制签名状态。
如果不调用此函数,将使用默认值 YES。
| [in] | is_render_signature_state | YES 表示在签名上绘制签名状态, 而 NO 表示不绘制。 |
| - (void) setRenderTextAntiAliasing: | (BOOL) | is_render_text_antialiasing |
设置标志来决定是否绘制文本反锯齿。
如果不调用此函数,将使用默认值 YES。
| [in] | is_render_text_antialiasing | YES 表示绘制文本反锯齿。 NO 表示绘制文本锯齿。 |
| - (void) setScreenDPIScale: | (float) | scale |
设置用于渲染的屏幕DPI缩放因子。
设置屏幕DPI缩放比例以适应不同的DPI条件。 此值通常应匹配系统报告的缩放因子 (例如,显示设置中125缩放为1.25)以确保与物理显示特性 的正确渲染对齐。
| [in] | scale | 当前屏幕DPI的缩放比例(1.0 = 100原生DPI,2.0 = 200等)。 必须大于0,通常应对应于系统推荐的缩放因子。 |
| - (FSProgressive *) startQuickRender: | (FSPDFPage*) | page | |
| matrix: | (FSMatrix2D*) | matrix | |
| pause: | (id<FSPauseCallback>) | pause | |
开始快速渲染PDF页面,主要用于缩略图。
此函数主要用于为缩略图渲染页面。 渲染的内容将不完整:即使通过函数 FSRenderer::setRenderContentFlags: 设置了标志 FSRendererRenderAnnot,所有注释都将被忽略; 文本内容将变得模糊并被像素点替代。
当页面具有复杂或大量内容时,这种快速渲染可能仍需要很长时间, 因此Foxit PDF SDK使用渐进式过程来完成。
| [in] | page | 有效的PDF页面。应该已经被解析。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSPDFPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 默认值:nil。 |
| - (FSProgressive *) startRender: | (FSPDFPage*) | page | |
| matrix: | (FSMatrix2D*) | matrix | |
| pause: | (id<FSPauseCallback>) | pause | |
开始渲染PDF页面。
渲染具有复杂或大量内容的PDF页面可能需要很长时间,因此Foxit PDF SDK使用 渐进式过程来完成。
在Foxit PDF SDK中,窗体注释总是与表单字段和表单控件关联。对于如何 渲染窗体注释,推荐流程如下:
| [in] | page | 有效的PDF页面。如果只渲染注释(即只通过函数 FSRenderer::setRenderContentFlags: 设置了 FSRendererRenderAnnot),则无需解析输入页面; 否则输入页面应该已经被解析。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSPDFPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 默认值:nil。 |
| - (FSProgressive *) startRenderBitmap: | (FSBitmap*) | bitmap | |
| matrix: | (FSMatrix2D*) | matrix | |
| clip_rect: | (FSRectI*) | clip_rect | |
| interpolation: | (unsigned int) | interpolation | |
| pause: | (id<FSPauseCallback>) | pause | |
开始渲染位图。
渲染具有复杂或大量内容的位图可能需要很长时间,因此Foxit PDF SDK使用 渐进式过程来完成。
| [in] | bitmap | 有效的位图。用户应确保位图在 当前渲染过程完成之前保持有效。 |
| [in] | matrix | 用于渲染的变换矩阵。此矩阵用作图像矩阵: 假设 h 是图像高度,w 是图像宽度,那么矩阵 [w 0 0 h 0 0] 将产生一个相同的图像。 |
| [in] | clip_rect | 渲染设备的裁剪矩形。可以为 nil。 默认值:nil。 |
| [in] | interpolation | 位图插值标志。请参考从 FSBitmapDownsample 开始的值,可以是这些值中的一个或组合。 如果不指定任何标志,请使用0。默认值:0。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 默认值:nil。 |
| - (FSProgressive *) startRenderBitmapWithAlpha: | (FSBitmap*) | bitmap | |
| matrix: | (FSMatrix2D*) | matrix | |
| clip_rect: | (FSRectI*) | clip_rect | |
| interpolation: | (unsigned int) | interpolation | |
| alpha: | (unsigned int) | alpha | |
| pause: | (id<FSPauseCallback>) | pause | |
开始渲染位图。
渲染具有复杂或大量内容的位图可能需要很长时间,因此Foxit PDF SDK使用 渐进式过程来完成。
| [in] | bitmap | 有效的位图。用户应确保位图在 当前渲染过程完成之前保持有效。 |
| [in] | matrix | 用于渲染的变换矩阵。此矩阵用作图像矩阵: 假设 h 是图像高度,w 是图像宽度,那么矩阵 [w 0 0 h 0 0] 将产生一个相同的图像。 |
| [in] | clip_rect | 渲染设备的裁剪矩形。可以为 nil。 |
| [in] | interpolation | 位图插值标志。请参考从 FSBitmapDownsample 开始的值,可以是这些值中的一个或组合。 如果不指定任何标志,请使用0。 |
| [in] | alpha | 位图透明度值(0 = 完全透明,255 = 完全不透明)。 有效范围:从0到255。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 |
| - (FSProgressive *) startRenderReflowPage: | (FSReflowPage*) | reflow_page | |
| matrix: | (FSMatrix2D*) | matrix | |
| pause: | (id<FSPauseCallback>) | pause | |
开始渲染重排页面。
渲染具有复杂或大量内容的重排页面可能需要很长时间,因此Foxit PDF SDK使用 渐进式过程来完成。
| [in] | reflow_page | 有效的重排页面。应该已经被解析。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSReflowPage::getDisplayMatrix:offset_y:width:height:rotate: 返回。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 默认值:nil。 |
| - (FSProgressive *) startRenderXFAPage: | (FSXFAPage*) | xfa_page_view | |
| matrix: | (FSMatrix2D*) | matrix | |
| is_highlight: | (BOOL) | is_highlight | |
| pause: | (id<FSPauseCallback>) | pause | |
开始渲染XFA页面。
渲染具有复杂或大量内容的XFA页面将需要很长时间,因此Foxit PDF SDK使用 渐进式过程来完成。
| [in] | xfa_page_view | 有效的XFA页面。 |
| [in] | matrix | 用于渲染的变换矩阵,通常由函数 FSXFAPage::getDisplayMatrix:top:width:height:rotate: 返回。 |
| [in] | is_highlight | YES 表示高亮XFA小部件,NO 表示不高亮 XFA小部件。 |
| [in] | pause | 暂停回调对象,决定渲染过程是否需要暂停。 可以为 nil,表示在渲染过程中不暂停。 如果不为 nil,应该是用户实现的有效暂停对象。 默认值:nil。 |