[poppler] poppler/CairoFontEngine.cc
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 26 06:42:52 UTC 2022
poppler/CairoFontEngine.cc | 10 ++++++++++
1 file changed, 10 insertions(+)
New commits:
commit b96437128742e87a7603fa2a4d74baeda8368fba
Author: Marcel Fabian Krüger <tex at 2krueger.de>
Date: Thu Jul 21 23:47:39 2022 +0200
Support Type3 charprocs having Resources in Cairo
In !955 the same was done for OutputDevs with interpretType3Chars()=true,
this adds similar handling to CairoFontEngine.
diff --git a/poppler/CairoFontEngine.cc b/poppler/CairoFontEngine.cc
index 061aa62b..a7cce588 100644
--- a/poppler/CairoFontEngine.cc
+++ b/poppler/CairoFontEngine.cc
@@ -484,7 +484,17 @@ static cairo_status_t _render_type3_glyph(cairo_scaled_font_t *scaled_font, unsi
output_dev->startType3Render(gfx->getState(), gfx->getXRef());
output_dev->setInType3Char(true);
charProc = charProcs->getVal(glyph);
+ if (!charProc.isStream()) {
+ return CAIRO_STATUS_USER_FONT_ERROR;
+ }
+ Object charProcResObject = charProc.streamGetDict()->lookup("Resources");
+ if (charProcResObject.isDict()) {
+ gfx->pushResources(charProcResObject.getDict());
+ }
gfx->display(&charProc);
+ if (charProcResObject.isDict()) {
+ gfx->popResources();
+ }
output_dev->getType3GlyphWidth(&wx, &wy);
cairo_matrix_transform_distance(&matrix, &wx, &wy);
More information about the poppler
mailing list