From 7143e10afccc7beef22646f6c7355075f97afb2c Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 30 Sep 2020 13:18:42 +0200 Subject: =?UTF-8?q?Streamline=20font=20handling=20a=20bit=20=F0=9F=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/export/pdf.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/export') diff --git a/src/export/pdf.rs b/src/export/pdf.rs index c4c12713..b87b3181 100644 --- a/src/export/pdf.rs +++ b/src/export/pdf.rs @@ -13,10 +13,10 @@ use tide::font::{ use tide::{PdfWriter, Rect, Ref, Trailer, Version}; use ttf_parser::{name_id, GlyphId}; +use crate::font::FontLoader; use crate::layout::elements::LayoutElement; use crate::layout::BoxLayout; use crate::length::Length; -use crate::SharedFontLoader; /// Export a list of layouts into a _PDF_ document. /// @@ -28,7 +28,7 @@ use crate::SharedFontLoader; /// bytes written. pub fn export( layout: &[BoxLayout], - loader: &SharedFontLoader, + loader: &FontLoader, target: W, ) -> io::Result { PdfExporter::new(layout, loader, target)?.write() @@ -37,7 +37,7 @@ pub fn export( struct PdfExporter<'a, W: Write> { writer: PdfWriter, layouts: &'a [BoxLayout], - loader: &'a SharedFontLoader, + loader: &'a FontLoader, /// We need to know exactly which indirect reference id will be used for /// which objects up-front to correctly declare the document catalogue, page /// tree and so on. These offsets are computed in the beginning and stored @@ -61,7 +61,7 @@ const NUM_OBJECTS_PER_FONT: u32 = 5; impl<'a, W: Write> PdfExporter<'a, W> { fn new( layouts: &'a [BoxLayout], - loader: &'a SharedFontLoader, + loader: &'a FontLoader, target: W, ) -> io::Result { let (to_pdf, to_fontdock) = remap_fonts(layouts); @@ -168,8 +168,8 @@ impl<'a, W: Write> PdfExporter<'a, W> { let mut id = self.offsets.fonts.0; for &face_id in &self.to_layout { - let loader = self.loader.borrow(); - let face = loader.get_loaded(face_id); + let owned_face = self.loader.get_loaded(face_id); + let face = owned_face.get(); let name = face .names() @@ -269,7 +269,7 @@ impl<'a, W: Write> PdfExporter<'a, W> { .write_obj(id + 3, &CMap::new("Custom", system_info, mapping))?; // Write the face's bytes. - self.writer.write_obj(id + 4, &FontStream::new(face.data()))?; + self.writer.write_obj(id + 4, &FontStream::new(owned_face.data()))?; id += NUM_OBJECTS_PER_FONT; } -- cgit v1.2.3