feat(转换能力): 支持引用页面与代理转换
build.yaml / build (push) Successful in 52s

This commit is contained in:
xiaoqidun committed 2026-10-03 00:49:15 +08:00
1 parent 012569dbc0
commit 1945ea355a
7 files changed
+142 -22

No files matched your search

+10 -6
View File
@@ -93,7 +93,9 @@ func pdfOpaqueVisitor(visitor pdfgo.Visitor) pdfgo.Visitor {
return nil
}
v := pdfgo.Visitor{
Path: func(m pdfgo.PathMark) error { return check(m.Style, m.Fill, m.Stroke) },
Reference: visitor.Reference,
OptionalContent: visitor.OptionalContent,
Path: func(m pdfgo.PathMark) error { return check(m.Style, m.Fill, m.Stroke) },
Text: func(m pdfgo.TextMark) error {
return check(m.Style, m.Mode%4 == 0 || m.Mode%4 == 2, m.Mode%4 == 1 || m.Mode%4 == 2)
},
@@ -134,10 +136,12 @@ func (p *pdfImporter) groupPaths(mark pdfgo.GroupMark, walk func(pdfgo.Visitor)
opaque := true
scale := math.Hypot(p.matrix[0], p.matrix[1])
collect := pdfgo.Visitor{
Warning: visitor.Warning,
Text: func(pdfgo.TextMark) error { return errPDFGroupRaster },
Image: func(pdfgo.ImageMark) error { return errPDFGroupRaster },
Group: func(pdfgo.GroupMark, func(pdfgo.Visitor) error) error { return errPDFGroupRaster },
Reference: visitor.Reference,
OptionalContent: visitor.OptionalContent,
Warning: visitor.Warning,
Text: func(pdfgo.TextMark) error { return errPDFGroupRaster },
Image: func(pdfgo.ImageMark) error { return errPDFGroupRaster },
Group: func(pdfgo.GroupMark, func(pdfgo.Visitor) error) error { return errPDFGroupRaster },
}
collect.Path = func(path pdfgo.PathMark) error {
if path.Style.SoftMask != nil || path.Style.BlendMode != "" && path.Style.BlendMode != "Normal" && path.Style.BlendMode != "Compatible" {
@@ -297,7 +301,7 @@ func (p *pdfImporter) rasterGroup(mark pdfgo.GroupMark, walk func(pdfgo.Visitor)
// visitor 绑定当前导入器的图元与透明组访问函数
// 返回: pdfgo.Visitor 页面访问器
func (p *pdfImporter) visitor() pdfgo.Visitor {
v := pdfgo.Visitor{Path: p.path, Text: p.text, Image: p.image, Warning: p.warning}
v := pdfgo.Visitor{Path: p.path, Text: p.text, Image: p.image, Warning: p.warning, Reference: p.referencePage}
v.Group = func(mark pdfgo.GroupMark, walk func(pdfgo.Visitor) error) error { return p.group(mark, walk, v) }
return v
}