diff options
| author | Martin Haug <mhaug@live.de> | 2024-09-30 09:54:08 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-30 07:54:08 +0000 |
| commit | ada9650a06bc8199fa282d2a854840ee1d1d7ac6 (patch) | |
| tree | 210136831858f50408eedd08de15d2ad017c7e84 | |
| parent | 66147979ba29655bd31417c33dd167ee46d26493 (diff) | |
Write the font name for Type 3 fonts (#5070)
| -rw-r--r-- | crates/typst-pdf/src/color_font.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/crates/typst-pdf/src/color_font.rs b/crates/typst-pdf/src/color_font.rs index 6f435d43..798076be 100644 --- a/crates/typst-pdf/src/color_font.rs +++ b/crates/typst-pdf/src/color_font.rs @@ -84,8 +84,18 @@ pub fn write_color_fonts( gids.push(color_glyph.gid); } + // Determine the base font name. + gids.sort(); + let subset_tag = subset_tag(&gids); + let postscript_name = font_slice + .font + .find_name(name_id::POST_SCRIPT_NAME) + .unwrap_or_else(|| "unknown".to_string()); + let base_font = eco_format!("{subset_tag}+{postscript_name}"); + // Write the Type3 font object. let mut pdf_font = chunk.type3_font(subfont_id); + pdf_font.name(Name(base_font.as_bytes())); pdf_font.pair(Name(b"Resources"), color_fonts.resources.reference); pdf_font.bbox(color_font.bbox); pdf_font.matrix([1.0 / scale_factor, 0.0, 0.0, 1.0 / scale_factor, 0.0, 0.0]); @@ -129,13 +139,6 @@ pub fn write_color_fonts( chunk.cmap(cmap_ref, &cmap.finish()); // Write the font descriptor. - gids.sort(); - let subset_tag = subset_tag(&gids); - let postscript_name = font_slice - .font - .find_name(name_id::POST_SCRIPT_NAME) - .unwrap_or_else(|| "unknown".to_string()); - let base_font = eco_format!("{subset_tag}+{postscript_name}"); write_font_descriptor( &mut chunk, descriptor_ref, |
