initial PDF support
This commit is contained in:
parent
3785fcf413
commit
fa47d5a181
|
@ -950,7 +950,7 @@ checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
|
|||
[[package]]
|
||||
name = "font"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pdf-rs/font/#6047031ce86dd5fb075c4225f7deeaaeb596918f"
|
||||
source = "git+https://github.com/pdf-rs/font/#17d3c1d19d937440c760c79be373798326f02bcb"
|
||||
dependencies = [
|
||||
"brotli-decompressor",
|
||||
"decorum",
|
||||
|
@ -960,7 +960,6 @@ dependencies = [
|
|||
"itertools 0.8.2",
|
||||
"log",
|
||||
"nom",
|
||||
"pathfinder_builder",
|
||||
"pathfinder_color",
|
||||
"pathfinder_content",
|
||||
"pathfinder_geometry",
|
||||
|
@ -2011,15 +2010,6 @@ dependencies = [
|
|||
"pathfinder_gpu",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pathfinder_builder"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/s3bk/pathfinder/#6197446b8c7816227ebcd6d81009df357b9f0c0b"
|
||||
dependencies = [
|
||||
"pathfinder_content",
|
||||
"pathfinder_geometry",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pathfinder_c"
|
||||
version = "0.1.0"
|
||||
|
@ -2323,7 +2313,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pdf"
|
||||
version = "0.7.0"
|
||||
source = "git+https://github.com/pdf-rs/pdf#f7b0acb4ac8c37cb0eb37dfa3ebeedb5b431cc8c"
|
||||
source = "git+https://github.com/pdf-rs/pdf#2beb20e6396722a1a6771d0caabc4fe6e05b671c"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"chrono",
|
||||
|
@ -2345,7 +2335,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pdf_derive"
|
||||
version = "0.1.19"
|
||||
source = "git+https://github.com/pdf-rs/pdf#f7b0acb4ac8c37cb0eb37dfa3ebeedb5b431cc8c"
|
||||
source = "git+https://github.com/pdf-rs/pdf#2beb20e6396722a1a6771d0caabc4fe6e05b671c"
|
||||
dependencies = [
|
||||
"quote 1.0.7",
|
||||
"syn 1.0.33",
|
||||
|
@ -2354,13 +2344,12 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "pdf_render"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pdf-rs/pdf#f7b0acb4ac8c37cb0eb37dfa3ebeedb5b431cc8c"
|
||||
source = "git+https://github.com/pdf-rs/pdf#2beb20e6396722a1a6771d0caabc4fe6e05b671c"
|
||||
dependencies = [
|
||||
"encoding",
|
||||
"font",
|
||||
"itertools 0.9.0",
|
||||
"log",
|
||||
"pathfinder_builder",
|
||||
"pathfinder_color",
|
||||
"pathfinder_content",
|
||||
"pathfinder_geometry",
|
||||
|
|
|
@ -69,3 +69,10 @@ default-members = [
|
|||
[patch.crates-io]
|
||||
pathfinder_geometry = { path = "geometry" }
|
||||
pathfinder_simd = { path = "simd" }
|
||||
|
||||
[patch."https://github.com/servo/pathfinder"]
|
||||
pathfinder_content = { path = "content" }
|
||||
pathfinder_color = { path = "color" }
|
||||
pathfinder_geometry = { path = "geometry" }
|
||||
pathfinder_renderer = { path = "renderer" }
|
||||
pathfinder_simd = { path = "simd" }
|
||||
|
|
|
@ -85,7 +85,11 @@ mod ui;
|
|||
|
||||
enum Content {
|
||||
Svg(SvgTree),
|
||||
Pdf(PdfFile<Vec<u8>>, PdfRenderCache, u32)
|
||||
Pdf {
|
||||
file: PdfFile<Vec<u8>>,
|
||||
cache: PdfRenderCache,
|
||||
page_nr: u32
|
||||
}
|
||||
}
|
||||
|
||||
pub struct DemoApp<W> where W: Window {
|
||||
|
@ -765,7 +769,7 @@ impl Content {
|
|||
let message = get_svg_building_message(&built_svg);
|
||||
(built_svg.scene, message)
|
||||
}
|
||||
Content::Pdf(ref file, ref mut cache, page_nr) => {
|
||||
Content::Pdf { ref file, ref mut cache, page_nr } => {
|
||||
let page = file.get_page(page_nr).expect("no such page");
|
||||
let (scene, _) = cache.render_page(file, &page).unwrap();
|
||||
(scene, String::new())
|
||||
|
@ -785,9 +789,8 @@ fn load_scene(resource_loader: &dyn ResourceLoader,
|
|||
|
||||
if let Ok(tree) = SvgTree::from_data(&data, &UsvgOptions::default()) {
|
||||
Content::Svg(tree)
|
||||
}
|
||||
else if let Ok(pdf) = PdfFile::from_data(data) {
|
||||
Content::Pdf(pdf, PdfRenderCache::new(), 0)
|
||||
} else if let Ok(file) = PdfFile::from_data(data) {
|
||||
Content::Pdf { file, cache: PdfRenderCache::new(), page_nr: 0 }
|
||||
} else {
|
||||
panic!("can't load data");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue