Skip to content

Commit

Permalink
PDF: Use correct bfchar size in toUnicode for latin fonts
Browse files Browse the repository at this point in the history
poppler was printing warnings about the wrong size
  • Loading branch information
Adrian Johnson committed Nov 2, 2010
1 parent c7027c9 commit 1047dc6
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
27 changes: 13 additions & 14 deletions src/cairo-pdf-surface.c
Original file line number Diff line number Diff line change
Expand Up @@ -3785,7 +3785,6 @@ _create_font_subset_tag (cairo_scaled_font_subset_t *font_subset,
static cairo_int_status_t
_cairo_pdf_surface_emit_to_unicode_stream (cairo_pdf_surface_t *surface,
cairo_scaled_font_subset_t *font_subset,
cairo_bool_t is_composite,
cairo_pdf_resource_t *stream)
{
unsigned int i, num_bfchar;
Expand Down Expand Up @@ -3813,7 +3812,7 @@ _cairo_pdf_surface_emit_to_unicode_stream (cairo_pdf_surface_t *surface,
"/CMapType 2 def\n"
"1 begincodespacerange\n");

if (is_composite) {
if (font_subset->is_composite) {
_cairo_output_stream_printf (surface->output,
"<0000> <ffff>\n");
} else {
Expand Down Expand Up @@ -3865,7 +3864,7 @@ _cairo_pdf_surface_emit_to_unicode_stream (cairo_pdf_surface_t *surface,
"%d beginbfchar\n",
num_bfchar - i > 100 ? 100 : num_bfchar - i);
}
if (is_composite)
if (font_subset->is_composite)
_cairo_output_stream_printf (surface->output, "<%04x> ", i + 1);
else
_cairo_output_stream_printf (surface->output, "<%02x> ", i + 1);
Expand Down Expand Up @@ -3932,7 +3931,7 @@ _cairo_pdf_surface_emit_cff_font (cairo_pdf_surface_t *surface,
return status;

status = _cairo_pdf_surface_emit_to_unicode_stream (surface,
font_subset, TRUE,
font_subset,
&to_unicode_stream);
if (_cairo_status_is_error (status))
return status;
Expand Down Expand Up @@ -4167,7 +4166,7 @@ _cairo_pdf_surface_emit_type1_font (cairo_pdf_surface_t *surface,
return status;

status = _cairo_pdf_surface_emit_to_unicode_stream (surface,
font_subset, FALSE,
font_subset,
&to_unicode_stream);
if (_cairo_status_is_error (status))
return status;
Expand Down Expand Up @@ -4352,7 +4351,7 @@ _cairo_pdf_surface_emit_truetype_font_subset (cairo_pdf_surface_t *surface,
}

status = _cairo_pdf_surface_emit_to_unicode_stream (surface,
font_subset, TRUE,
font_subset,
&to_unicode_stream);
if (_cairo_status_is_error (status)) {
_cairo_truetype_subset_fini (&subset);
Expand Down Expand Up @@ -4725,7 +4724,7 @@ _cairo_pdf_surface_emit_type3_font_subset (cairo_pdf_surface_t *surface,
free (glyphs);

status = _cairo_pdf_surface_emit_to_unicode_stream (surface,
font_subset, FALSE,
font_subset,
&to_unicode_stream);
if (_cairo_status_is_error (status)) {
free (widths);
Expand Down Expand Up @@ -4786,15 +4785,15 @@ _cairo_pdf_surface_emit_unscaled_font_subset (cairo_scaled_font_subset_t *font_s
cairo_pdf_surface_t *surface = closure;
cairo_status_t status;

if (font_subset->is_composite) {
status = _cairo_pdf_surface_emit_cff_font_subset (surface, font_subset);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;
status = _cairo_pdf_surface_emit_cff_font_subset (surface, font_subset);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;

status = _cairo_pdf_surface_emit_truetype_font_subset (surface, font_subset);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;
status = _cairo_pdf_surface_emit_truetype_font_subset (surface, font_subset);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;

if (font_subset->is_composite) {
status = _cairo_pdf_surface_emit_cff_fallback_font (surface, font_subset);
if (status != CAIRO_INT_STATUS_UNSUPPORTED)
return status;
Expand Down
1 change: 1 addition & 0 deletions src/cairo-scaled-font-subsets.c
Original file line number Diff line number Diff line change
Expand Up @@ -638,6 +638,7 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font,
(latin_character == 0 && sub_font->num_glyphs_in_latin_subset > 0))
{
is_latin = TRUE;
sub_font->is_composite = FALSE;
}
}

Expand Down

0 comments on commit 1047dc6

Please sign in to comment.