@@ -2,7 +2,7 @@ use std::collections::HashSet;
2
2
3
3
use entry:: Flow ;
4
4
use pdf:: { backend:: Backend , object:: { Page , Resolve } , PdfError } ;
5
- use pdf_render:: { tracer:: { TraceCache , Tracer , DrawItem } , Fill , render_pattern, render_page} ;
5
+ use pdf_render:: { tracer:: { TraceCache , Tracer , DrawItem } , Fill , render_pattern, render_page, FillMode } ;
6
6
7
7
mod tree;
8
8
mod util;
@@ -12,7 +12,8 @@ pub mod entry;
12
12
pub fn run < B : Backend > ( file : & pdf:: file:: CachedFile < B > , page : & Page , resolve : & impl Resolve ) -> Result < Flow , PdfError > {
13
13
let cache = TraceCache :: new ( ) ;
14
14
15
- let mut tracer = Tracer :: new ( & cache) ;
15
+ let mut clip_paths = vec ! [ ] ;
16
+ let mut tracer = Tracer :: new ( & cache, & mut clip_paths) ;
16
17
17
18
render_page ( & mut tracer, resolve, & page, Default :: default ( ) ) ?;
18
19
@@ -22,10 +23,10 @@ pub fn run<B: Backend>(file: &pdf::file::CachedFile<B>, page: &Page, resolve: &i
22
23
let mut patterns = HashSet :: new ( ) ;
23
24
for item in items. iter ( ) {
24
25
if let DrawItem :: Vector ( ref v) = item {
25
- if let Some ( ( Fill :: Pattern ( id) , _ ) ) = v. fill {
26
+ if let Some ( FillMode { color : Fill :: Pattern ( id) , .. } ) = v. fill {
26
27
patterns. insert ( id) ;
27
28
}
28
- if let Some ( ( Fill :: Pattern ( id) , _ , _) ) = v. stroke {
29
+ if let Some ( ( FillMode { color : Fill :: Pattern ( id) , .. } , _) ) = v. stroke {
29
30
patterns. insert ( id) ;
30
31
}
31
32
}
@@ -35,7 +36,7 @@ pub fn run<B: Backend>(file: &pdf::file::CachedFile<B>, page: &Page, resolve: &i
35
36
let mut lines = vec ! [ ] ;
36
37
let mut visit_item = |item| {
37
38
match item {
38
- DrawItem :: Text ( t) if bbox. intersects ( t. rect ) => {
39
+ DrawItem :: Text ( t, _ ) if bbox. intersects ( t. rect ) => {
39
40
spans. push ( t) ;
40
41
}
41
42
DrawItem :: Vector ( path) if bbox. intersects ( path. outline . bounds ( ) ) => {
@@ -67,7 +68,7 @@ pub fn run<B: Backend>(file: &pdf::file::CachedFile<B>, page: &Page, resolve: &i
67
68
continue ;
68
69
}
69
70
} ;
70
- let mut pat_tracer = Tracer :: new ( & cache) ;
71
+ let mut pat_tracer = Tracer :: new ( & cache, & mut clip_paths ) ;
71
72
72
73
render_pattern ( & mut pat_tracer, & * pattern, resolve) ?;
73
74
let pat_items = pat_tracer. finish ( ) ;
0 commit comments