Documentation
¶
Overview ¶
Package render 将解析后的 OFD 文档渲染为图形内容。
Index ¶
- func FallbackFontData(family string) ([]byte, bool)
- func Rasterize(c *canvas.Canvas, resolution canvas.Resolution, colorSpace canvas.ColorSpace) *image.RGBA
- func RegisterFallbackFont(data []byte, family string, style canvas.FontStyle) error
- type CTColor
- type Document
- func (p *Document) Annot(ctx *canvas.Context, annot *models.Annot, pb models.StBox)
- func (p *Document) Composite(ctx *canvas.Context, object models.CompositeObject, dp *models.DrawParam, ...)
- func (p *Document) Draw(ctx *canvas.Context, page *parser.Page) error
- func (p *Document) FallbackFontFamily(id models.StRefID) string
- func (p *Document) HasLoadedEmbeddedFont(id models.StRefID) bool
- func (p *Document) Image(ctx *canvas.Context, object models.ImageObject, dp *models.DrawParam, ...)
- func (p *Document) Layer(ctx *canvas.Context, layer *models.Layer, pb models.StBox)
- func (p *Document) Page(page *parser.Page) (*canvas.Canvas, error)
- func (p *Document) PageContent(ctx *canvas.Context, page *parser.Page, seal bool)
- func (p *Document) Path(ctx *canvas.Context, object models.PathObject, dp *models.DrawParam, ...)
- func (p *Document) Seal(ctx *canvas.Context, info *parser.SealInfo, pb models.StBox) error
- func (p *Document) Template(ctx *canvas.Context, template models.Template, pb models.StBox)
- func (p *Document) Text(ctx *canvas.Context, object models.TextObject, dp *models.DrawParam, ...)
- func (p *Document) TextLayouts(page *parser.Page) []TextLayout
- func (p *Document) UseFallbackFont(family string) error
- type Fonts
- type GlyphLayout
- type TextLayout
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FallbackFontData ¶ added in v0.1.2
FallbackFontData 返回已全局注册回退字体族的首个来源数据(用于字体签名等 只读检查);未注册时 ok 为 false。
func Rasterize ¶ added in v0.1.1
func Rasterize(c *canvas.Canvas, resolution canvas.Resolution, colorSpace canvas.ColorSpace) *image.RGBA
Rasterize 将画布栅格化为 RGBA 图片。图片明显缩小时使用较快的双线性 插值;其他图像仍使用 canvas 默认的 Catmull-Rom 插值。
func RegisterFallbackFont ¶ added in v0.1.2
RegisterFallbackFont 把回退字体注册到进程级全局注册表。 同一字体族全局只保存一份解析结果和一份字体数据引用,重复注册幂等 (首个 RenderDocument/Fonts 完成解析后即锁定)。注册后通过 Fonts.UseFallbackFont 或 Document.UseFallbackFont 应用到具体文档; 没有其他回退字体时,缺失字体默认使用该全局字体族。
Types ¶
type Document ¶
func NewDocumentWithDPI ¶ added in v0.1.1
func NewDocumentWithDPI(background color.Color, doc *parser.Document, dpi canvas.Resolution) *Document
NewDocumentWithDPI 创建带有输出分辨率的渲染文档。 dpi 用于复合图元等内部离屏栅格化,不改变页面的物理尺寸。
func (*Document) Composite ¶ added in v0.0.5
func (p *Document) Composite(ctx *canvas.Context, object models.CompositeObject, dp *models.DrawParam, pb models.StBox)
Composite 绘制复合图元(CompositeObject)。
CompositeGraphicUnit 的内容位于自身的 [0,Width]x[0,Height] 坐标系中, 先渲染完整单元,再使用 CompositeObject 的 Boundary 和 CTM 映射到页面, 保留单元内部坐标,不根据透明像素重新裁剪内容。
func (*Document) FallbackFontFamily ¶ added in v0.0.9
FallbackFontFamily 返回为文档字体选择的外部字体族。
func (*Document) HasLoadedEmbeddedFont ¶ added in v0.0.9
HasLoadedEmbeddedFont 判断文档字体是否可以作为内嵌字体族提供给浏览器。
func (*Document) PageContent ¶
func (*Document) TextLayouts ¶ added in v0.0.9
func (p *Document) TextLayouts(page *parser.Page) []TextLayout
TextLayouts 返回页面文字的字符级布局。字符步进使用渲染器的字体度量、 DeltaX/DeltaY、ReadDirection 和 CTM 基础计算,避免网页字体度量造成高亮偏移。
func (*Document) UseFallbackFont ¶ added in v0.1.2
UseFallbackFont 使当前文档缺失字体时使用已全局注册的回退字体族。
type Fonts ¶
type Fonts struct {
*parser.Document
Fonts map[models.StRefID]*canvas.FontFamily
// contains filtered or unexported fields
}
func (*Fonts) FallbackFontFamily ¶ added in v0.0.9
FallbackFontFamily 返回为文档字体选择的外部字体族。 必须先调用 LoadFont;TextLayouts 和 Text 会自动完成这一步。
func (*Fonts) HasLoadedEmbeddedFont ¶ added in v0.0.9
HasLoadedEmbeddedFont 判断文档字体是否解析为可用且已加载的字体族。 仅声明 FontFile 并不够,因为文件可能缺失、格式错误或被字体解析器拒绝。
func (*Fonts) UseFallbackFont ¶ added in v0.1.2
UseFallbackFont 使当前字体上下文在缺失字体时使用已全局注册的回退字体族。 该字体族必须先通过 RegisterFallbackFont 注册;其全部已注册样式都会生效。