summaryrefslogtreecommitdiff
path: root/src/cairo-type1-fallback.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2006-10-15 23:07:38 +0930
committerAdrian Johnson <ajohnson@redneon.com>2006-10-15 23:07:38 +0930
commit216c759d463ca407e1baea4090c782074567cbe2 (patch)
treef107c633d672be01ef2bb0ae9fb8c0c35db1d77c /src/cairo-type1-fallback.c
parentd1fb02b5b93c9a456411e9eb56f3ee136b33d9e7 (diff)
downloadcairo-216c759d463ca407e1baea4090c782074567cbe2.tar.gz
Type 1 fallback fonts - use binary encoding in PDF files
PDF files require that embedded Type 1 fonts have the encrypted portion of the font encoded in binary.
Diffstat (limited to 'src/cairo-type1-fallback.c')
-rw-r--r--src/cairo-type1-fallback.c36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/cairo-type1-fallback.c b/src/cairo-type1-fallback.c
index fe5742904..485ec01cd 100644
--- a/src/cairo-type1-fallback.c
+++ b/src/cairo-type1-fallback.c
@@ -64,7 +64,8 @@ typedef struct _cairo_type1_font {
static cairo_status_t
cairo_type1_font_create (cairo_scaled_font_subset_t *scaled_font_subset,
- cairo_type1_font_t **subset_return)
+ cairo_type1_font_t **subset_return,
+ cairo_bool_t hex_encode)
{
cairo_type1_font_t *font;
cairo_font_face_t *font_face;
@@ -84,6 +85,7 @@ cairo_type1_font_create (cairo_scaled_font_subset_t *scaled_font_subset,
}
font->scaled_font_subset = scaled_font_subset;
+ font->hex_encode = hex_encode;
font_face = cairo_scaled_font_get_font_face (scaled_font_subset->scaled_font);
@@ -546,7 +548,6 @@ cairo_type1_font_write_private_dict (cairo_type1_font_t *font,
cairo_output_stream_t *encrypted_output;
font->eexec_key = private_dict_key;
- font->hex_encode = TRUE;
font->hex_column = 0;
encrypted_output = _cairo_output_stream_create (
cairo_type1_write_stream_encrypted,
@@ -667,17 +668,18 @@ cairo_type1_font_destroy (cairo_type1_font_t *font)
free (font);
}
-cairo_status_t
-_cairo_type1_fallback_init (cairo_type1_subset_t *type1_subset,
- const char *name,
- cairo_scaled_font_subset_t *scaled_font_subset)
+static cairo_status_t
+_cairo_type1_fallback_init_internal (cairo_type1_subset_t *type1_subset,
+ const char *name,
+ cairo_scaled_font_subset_t *scaled_font_subset,
+ cairo_bool_t hex_encode)
{
cairo_type1_font_t *font;
cairo_status_t status;
unsigned long length;
unsigned int i, len;
- status = cairo_type1_font_create (scaled_font_subset, &font);
+ status = cairo_type1_font_create (scaled_font_subset, &font, hex_encode);
if (status)
return status;
@@ -739,6 +741,26 @@ _cairo_type1_fallback_init (cairo_type1_subset_t *type1_subset,
return status;
}
+cairo_status_t
+_cairo_type1_fallback_init_binary (cairo_type1_subset_t *type1_subset,
+ const char *name,
+ cairo_scaled_font_subset_t *scaled_font_subset)
+{
+ _cairo_type1_fallback_init_internal (type1_subset,
+ name,
+ scaled_font_subset, FALSE);
+}
+
+cairo_status_t
+_cairo_type1_fallback_init_hex (cairo_type1_subset_t *type1_subset,
+ const char *name,
+ cairo_scaled_font_subset_t *scaled_font_subset)
+{
+ _cairo_type1_fallback_init_internal (type1_subset,
+ name,
+ scaled_font_subset, TRUE);
+}
+
void
_cairo_type1_fallback_fini (cairo_type1_subset_t *subset)
{