mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-04 03:38:06 +02:00
PDF: Restrict ActualText to PDF version >= 1.5
The use of ActualText in a marked content sequence is a PDF 1.5 feature. A 'use_actual_text' flag linked to the PDF version has already been implemented in pdf-operators but for some reason this flag had not been used to control the use of ActualText.
This commit is contained in:
parent
7ee313d7b8
commit
3afd7cd031
1 changed files with 18 additions and 13 deletions
|
|
@ -1366,7 +1366,7 @@ _cairo_pdf_operators_emit_cluster (cairo_pdf_operators_t *pdf_operators,
|
|||
{
|
||||
cairo_scaled_font_subsets_glyph_t subset_glyph;
|
||||
cairo_glyph_t *cur_glyph;
|
||||
cairo_status_t status;
|
||||
cairo_status_t status = CAIRO_STATUS_SUCCESS;
|
||||
int i;
|
||||
|
||||
/* If the cluster maps 1 glyph to 1 or more unicode characters, we
|
||||
|
|
@ -1401,15 +1401,17 @@ _cairo_pdf_operators_emit_cluster (cairo_pdf_operators_t *pdf_operators,
|
|||
}
|
||||
}
|
||||
|
||||
/* Fallback to using ActualText to map zero or more glyphs to a
|
||||
* unicode string. */
|
||||
status = _cairo_pdf_operators_flush_glyphs (pdf_operators);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
if (pdf_operators->use_actual_text) {
|
||||
/* Fallback to using ActualText to map zero or more glyphs to a
|
||||
* unicode string. */
|
||||
status = _cairo_pdf_operators_flush_glyphs (pdf_operators);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
status = _cairo_pdf_operators_begin_actualtext (pdf_operators, utf8, utf8_len);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
status = _cairo_pdf_operators_begin_actualtext (pdf_operators, utf8, utf8_len);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
}
|
||||
|
||||
cur_glyph = glyphs;
|
||||
/* XXX
|
||||
|
|
@ -1434,11 +1436,14 @@ _cairo_pdf_operators_emit_cluster (cairo_pdf_operators_t *pdf_operators,
|
|||
else
|
||||
cur_glyph++;
|
||||
}
|
||||
status = _cairo_pdf_operators_flush_glyphs (pdf_operators);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
status = _cairo_pdf_operators_end_actualtext (pdf_operators);
|
||||
if (pdf_operators->use_actual_text) {
|
||||
status = _cairo_pdf_operators_flush_glyphs (pdf_operators);
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
status = _cairo_pdf_operators_end_actualtext (pdf_operators);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue