summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2024-09-30 09:54:08 +0200
committerGitHub <noreply@github.com>2024-09-30 07:54:08 +0000
commitada9650a06bc8199fa282d2a854840ee1d1d7ac6 (patch)
tree210136831858f50408eedd08de15d2ad017c7e84
parent66147979ba29655bd31417c33dd167ee46d26493 (diff)
Write the font name for Type 3 fonts (#5070)
-rw-r--r--crates/typst-pdf/src/color_font.rs17
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,