summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-appearance.c160
-rw-r--r--source/pdf/pdf-crypt.c24
-rw-r--r--source/pdf/pdf-device.c96
-rw-r--r--source/pdf/pdf-font.c78
-rw-r--r--source/pdf/pdf-function.c78
-rw-r--r--source/pdf/pdf-lex.c26
-rw-r--r--source/pdf/pdf-object.c4
-rw-r--r--source/pdf/pdf-op-buffer.c274
-rw-r--r--source/pdf/pdf-pkcs7.c10
-rw-r--r--source/pdf/pdf-store.c2
-rw-r--r--source/pdf/pdf-write.c144
11 files changed, 447 insertions, 449 deletions
diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c
index c5193ea4..e011fdc9 100644
--- a/source/pdf/pdf-appearance.c
+++ b/source/pdf/pdf-appearance.c
@@ -203,24 +203,24 @@ static void get_text_widget_info(fz_context *ctx, pdf_document *doc, pdf_obj *wi
void pdf_fzbuf_print_da(fz_context *ctx, fz_buffer *fzbuf, pdf_da_info *di)
{
if (di->font_name != NULL && di->font_size != 0)
- fz_buffer_printf(ctx, fzbuf, "/%s %d Tf", di->font_name, di->font_size);
+ fz_append_printf(ctx, fzbuf, "/%s %d Tf", di->font_name, di->font_size);
switch (di->col_size)
{
case 1:
- fz_buffer_printf(ctx, fzbuf, " %f g", di->col[0]);
+ fz_append_printf(ctx, fzbuf, " %f g", di->col[0]);
break;
case 3:
- fz_buffer_printf(ctx, fzbuf, " %f %f %f rg", di->col[0], di->col[1], di->col[2]);
+ fz_append_printf(ctx, fzbuf, " %f %f %f rg", di->col[0], di->col[1], di->col[2]);
break;
case 4:
- fz_buffer_printf(ctx, fzbuf, " %f %f %f %f k", di->col[0], di->col[1], di->col[2], di->col[3]);
+ fz_append_printf(ctx, fzbuf, " %f %f %f %f k", di->col[0], di->col[1], di->col[2], di->col[3]);
break;
default:
- fz_buffer_printf(ctx, fzbuf, " 0 g");
+ fz_append_string(ctx, fzbuf, " 0 g");
break;
}
}
@@ -242,17 +242,17 @@ static void fzbuf_print_color(fz_context *ctx, fz_buffer *fzbuf, pdf_obj *arr, i
switch (pdf_array_len(ctx, arr))
{
case 1:
- fz_buffer_printf(ctx, fzbuf, stroke?"%f G\n":"%f g\n",
+ fz_append_printf(ctx, fzbuf, stroke?"%f G\n":"%f g\n",
pdf_to_real(ctx, pdf_array_get(ctx, arr, 0)) + adj);
break;
case 3:
- fz_buffer_printf(ctx, fzbuf, stroke?"%f %f %f RG\n":"%f %f %f rg\n",
+ fz_append_printf(ctx, fzbuf, stroke?"%f %f %f RG\n":"%f %f %f rg\n",
pdf_to_real(ctx, pdf_array_get(ctx, arr, 0)) + adj,
pdf_to_real(ctx, pdf_array_get(ctx, arr, 1)) + adj,
pdf_to_real(ctx, pdf_array_get(ctx, arr, 2)) + adj);
break;
case 4:
- fz_buffer_printf(ctx, fzbuf, stroke?"%f %f %f %f K\n":"%f %f %f %f k\n",
+ fz_append_printf(ctx, fzbuf, stroke?"%f %f %f %f K\n":"%f %f %f %f k\n",
pdf_to_real(ctx, pdf_array_get(ctx, arr, 0)),
pdf_to_real(ctx, pdf_array_get(ctx, arr, 1)),
pdf_to_real(ctx, pdf_array_get(ctx, arr, 2)),
@@ -266,63 +266,63 @@ static void fzbuf_print_rect_fill(fz_context *ctx, fz_buffer *fzbuf, const fz_re
{
if (clip)
{
- fz_buffer_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
- fz_buffer_printf(ctx, fzbuf, fmt_W);
+ fz_append_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
+ fz_append_printf(ctx, fzbuf, fmt_W);
}
if (col_size > 0)
{
switch (col_size)
{
case 1:
- fz_buffer_printf(ctx, fzbuf, "%f g\n", col[0]);
+ fz_append_printf(ctx, fzbuf, "%f g\n", col[0]);
break;
case 3:
- fz_buffer_printf(ctx, fzbuf, "%f %f %f rg\n", col[0], col[1], col[2]);
+ fz_append_printf(ctx, fzbuf, "%f %f %f rg\n", col[0], col[1], col[2]);
break;
case 4:
- fz_buffer_printf(ctx, fzbuf, "%f %f %f %f k\n", col[0], col[1], col[2], col[3]);
+ fz_append_printf(ctx, fzbuf, "%f %f %f %f k\n", col[0], col[1], col[2], col[3]);
break;
default:
break;
}
}
if (tm)
- fz_buffer_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
+ fz_append_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
- fz_buffer_printf(ctx, fzbuf, fmt_re, rect->x0, rect->y0, rect->x1 - rect->x0, rect->y1 - rect->y0);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_re, rect->x0, rect->y0, rect->x1 - rect->x0, rect->y1 - rect->y0);
+ fz_append_printf(ctx, fzbuf, fmt_f);
}
static void fzbuf_print_text(fz_context *ctx, fz_buffer *fzbuf, const fz_rect *clip, pdf_obj *col, font_info *font_rec, const fz_matrix *tm, char *text)
{
- fz_buffer_printf(ctx, fzbuf, fmt_q);
+ fz_append_printf(ctx, fzbuf, fmt_q);
if (clip)
{
- fz_buffer_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
- fz_buffer_printf(ctx, fzbuf, fmt_W);
+ fz_append_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
+ fz_append_printf(ctx, fzbuf, fmt_W);
if (col)
{
fzbuf_print_color(ctx, fzbuf, col, 0, 0.0);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_f);
}
else
{
- fz_buffer_printf(ctx, fzbuf, fmt_n);
+ fz_append_printf(ctx, fzbuf, fmt_n);
}
}
- fz_buffer_printf(ctx, fzbuf, fmt_BT);
+ fz_append_printf(ctx, fzbuf, fmt_BT);
pdf_fzbuf_print_da(ctx, fzbuf, &font_rec->da_rec);
- fz_buffer_printf(ctx, fzbuf, "\n");
+ fz_append_printf(ctx, fzbuf, "\n");
if (tm)
- fz_buffer_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
+ fz_append_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
- fz_buffer_print_pdf_string(ctx, fzbuf, text);
- fz_buffer_printf(ctx, fzbuf, fmt_Tj);
- fz_buffer_printf(ctx, fzbuf, fmt_ET);
- fz_buffer_printf(ctx, fzbuf, fmt_Q);
+ fz_append_pdf_string(ctx, fzbuf, text);
+ fz_append_printf(ctx, fzbuf, fmt_Tj);
+ fz_append_printf(ctx, fzbuf, fmt_ET);
+ fz_append_printf(ctx, fzbuf, fmt_Q);
}
static fz_buffer *create_text_buffer(fz_context *ctx, const fz_rect *clip, text_widget_info *info, const fz_matrix *tm, char *text)
@@ -331,9 +331,9 @@ static fz_buffer *create_text_buffer(fz_context *ctx, const fz_rect *clip, text_
fz_try(ctx)
{
- fz_buffer_printf(ctx, fzbuf, fmt_Tx_BMC);
+ fz_append_printf(ctx, fzbuf, fmt_Tx_BMC);
fzbuf_print_text(ctx, fzbuf, clip, info->col, &info->font_rec, tm, text);
- fz_buffer_printf(ctx, fzbuf, fmt_EMC);
+ fz_append_printf(ctx, fzbuf, fmt_EMC);
}
fz_catch(ctx)
{
@@ -558,53 +558,53 @@ static void text_splitter_retry(text_splitter *splitter)
static void fzbuf_print_text_start1(fz_context *ctx, fz_buffer *fzbuf, const fz_rect *clip, pdf_obj *col)
{
- fz_buffer_printf(ctx, fzbuf, fmt_Tx_BMC);
- fz_buffer_printf(ctx, fzbuf, fmt_q);
+ fz_append_printf(ctx, fzbuf, fmt_Tx_BMC);
+ fz_append_printf(ctx, fzbuf, fmt_q);
if (clip)
{
- fz_buffer_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
- fz_buffer_printf(ctx, fzbuf, fmt_W);
+ fz_append_printf(ctx, fzbuf, fmt_re, clip->x0, clip->y0, clip->x1 - clip->x0, clip->y1 - clip->y0);
+ fz_append_printf(ctx, fzbuf, fmt_W);
if (col)
{
fzbuf_print_color(ctx, fzbuf, col, 0, 0.0);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_f);
}
else
{
- fz_buffer_printf(ctx, fzbuf, fmt_n);
+ fz_append_printf(ctx, fzbuf, fmt_n);
}
}
}
static void fzbuf_print_text_start2(fz_context *ctx, fz_buffer *fzbuf, font_info *font, const fz_matrix *tm)
{
- fz_buffer_printf(ctx, fzbuf, fmt_BT);
+ fz_append_printf(ctx, fzbuf, fmt_BT);
pdf_fzbuf_print_da(ctx, fzbuf, &font->da_rec);
- fz_buffer_printf(ctx, fzbuf, "\n");
+ fz_append_printf(ctx, fzbuf, "\n");
- fz_buffer_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
+ fz_append_printf(ctx, fzbuf, fmt_Tm, tm->a, tm->b, tm->c, tm->d, tm->e, tm->f);
}
static void fzbuf_print_text_end(fz_context *ctx, fz_buffer *fzbuf)
{
- fz_buffer_printf(ctx, fzbuf, fmt_ET);
- fz_buffer_printf(ctx, fzbuf, fmt_Q);
- fz_buffer_printf(ctx, fzbuf, fmt_EMC);
+ fz_append_printf(ctx, fzbuf, fmt_ET);
+ fz_append_printf(ctx, fzbuf, fmt_Q);
+ fz_append_printf(ctx, fzbuf, fmt_EMC);
}
static void fzbuf_print_text_word(fz_context *ctx, fz_buffer *fzbuf, float x, float y, char *text, size_t count)
{
size_t i;
- fz_buffer_printf(ctx, fzbuf, fmt_Td, x, y);
- fz_buffer_printf(ctx, fzbuf, "(");
+ fz_append_printf(ctx, fzbuf, fmt_Td, x, y);
+ fz_append_printf(ctx, fzbuf, "(");
for (i = 0; i < count; i++)
- fz_buffer_printf(ctx, fzbuf, "%c", text[i]);
+ fz_append_printf(ctx, fzbuf, "%c", text[i]);
- fz_buffer_printf(ctx, fzbuf, ") Tj\n");
+ fz_append_printf(ctx, fzbuf, ") Tj\n");
}
static fz_buffer *create_text_appearance(fz_context *ctx, pdf_document *doc, const fz_rect *bbox, const fz_matrix *oldtm, text_widget_info *info, char *text)
@@ -1051,9 +1051,9 @@ static void update_marked_content(fz_context *ctx, pdf_document *doc, pdf_xobjec
if (first)
first = 0;
else
- fz_buffer_printf(ctx, newbuf, " ");
+ fz_append_printf(ctx, newbuf, " ");
- pdf_print_token(ctx, newbuf, tok, &lbuf);
+ pdf_append_token(ctx, newbuf, tok, &lbuf);
if (tok == PDF_TOK_KEYWORD && !strcmp(lbuf.scratch, "BMC"))
break;
}
@@ -1070,8 +1070,8 @@ static void update_marked_content(fz_context *ctx, pdf_document *doc, pdf_xobjec
/* Copy the replacement appearance stream to newbuf */
for (tok = pdf_lex(ctx, str_inner, &lbuf); tok != PDF_TOK_EOF; tok = pdf_lex(ctx, str_inner, &lbuf))
{
- fz_buffer_printf(ctx, newbuf, " ");
- pdf_print_token(ctx, newbuf, tok, &lbuf);
+ fz_append_printf(ctx, newbuf, " ");
+ pdf_append_token(ctx, newbuf, tok, &lbuf);
}
if (bmc_found)
@@ -1086,8 +1086,8 @@ static void update_marked_content(fz_context *ctx, pdf_document *doc, pdf_xobjec
/* Copy the rest of the existing appearance stream to newbuf */
for (tok = pdf_lex(ctx, str_outer, &lbuf); tok != PDF_TOK_EOF; tok = pdf_lex(ctx, str_outer, &lbuf))
{
- fz_buffer_printf(ctx, newbuf, " ");
- pdf_print_token(ctx, newbuf, tok, &lbuf);
+ fz_append_printf(ctx, newbuf, " ");
+ pdf_append_token(ctx, newbuf, tok, &lbuf);
}
}
@@ -1445,9 +1445,9 @@ void pdf_update_pushbutton_appearance(fz_context *ctx, pdf_document *doc, pdf_ob
if (pdf_is_array(ctx, tobj))
{
fzbuf_print_color(ctx, fzbuf, tobj, 0, 0.0);
- fz_buffer_printf(ctx, fzbuf, fmt_re,
+ fz_append_printf(ctx, fzbuf, fmt_re,
rect.x0, rect.y0, rect.x1, rect.y1);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_f);
}
bstyle = get_border_style(ctx, obj);
bwidth = get_border_width(ctx, obj);
@@ -1457,38 +1457,38 @@ void pdf_update_pushbutton_appearance(fz_context *ctx, pdf_document *doc, pdf_ob
btotal += bwidth;
if (bstyle == BS_Beveled)
- fz_buffer_printf(ctx, fzbuf, fmt_g, 1.0);
+ fz_append_printf(ctx, fzbuf, fmt_g, 1.0);
else
- fz_buffer_printf(ctx, fzbuf, fmt_g, 0.33);
- fz_buffer_printf(ctx, fzbuf, fmt_m, bwidth, bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, bwidth, rect.y1 - bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, rect.x1 - bwidth, rect.y1 - bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, rect.y1 - 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, 2 * bwidth, rect.y1 - 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, 2 * bwidth, 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_g, 0.33);
+ fz_append_printf(ctx, fzbuf, fmt_m, bwidth, bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, bwidth, rect.y1 - bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, rect.x1 - bwidth, rect.y1 - bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, rect.y1 - 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, 2 * bwidth, rect.y1 - 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, 2 * bwidth, 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_f);
if (bstyle == BS_Beveled)
fzbuf_print_color(ctx, fzbuf, tobj, 0, -0.25);
else
- fz_buffer_printf(ctx, fzbuf, fmt_g, 0.66);
- fz_buffer_printf(ctx, fzbuf, fmt_m, rect.x1 - bwidth, rect.y1 - bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, rect.x1 - bwidth, bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, bwidth, bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, 2 * bwidth, 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, rect.y1 - 2 * bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_f);
+ fz_append_printf(ctx, fzbuf, fmt_g, 0.66);
+ fz_append_printf(ctx, fzbuf, fmt_m, rect.x1 - bwidth, rect.y1 - bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, rect.x1 - bwidth, bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, bwidth, bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, 2 * bwidth, 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_l, rect.x1 - 2 * bwidth, rect.y1 - 2 * bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_f);
}
tobj = pdf_dict_getl(ctx, obj, PDF_NAME_MK, PDF_NAME_BC, NULL);
if (tobj)
{
fzbuf_print_color(ctx, fzbuf, tobj, 1, 0.0);
- fz_buffer_printf(ctx, fzbuf, fmt_w, bwidth);
- fz_buffer_printf(ctx, fzbuf, fmt_re,
+ fz_append_printf(ctx, fzbuf, fmt_w, bwidth);
+ fz_append_printf(ctx, fzbuf, fmt_re,
bwidth/2, bwidth/2,
rect.x1 -bwidth/2, rect.y1 - bwidth/2);
- fz_buffer_printf(ctx, fzbuf, fmt_s);
+ fz_append_printf(ctx, fzbuf, fmt_s);
}
tobj = pdf_dict_getl(ctx, obj, PDF_NAME_MK, PDF_NAME_CA, NULL);
@@ -2305,7 +2305,7 @@ static void insert_signature_appearance_layers(fz_context *ctx, pdf_document *do
pdf_dict_putl(ctx, main_ap, frm, PDF_NAME_Resources, PDF_NAME_XObject, PDF_NAME_FRM, NULL);
fzbuf = fz_new_buffer(ctx, 8);
- fz_buffer_printf(ctx, fzbuf, "/FRM Do");
+ fz_append_printf(ctx, fzbuf, "/FRM Do");
pdf_update_stream(ctx, doc, main_ap, fzbuf, 0);
fz_drop_buffer(ctx, fzbuf);
fzbuf = NULL;
@@ -2313,13 +2313,13 @@ static void insert_signature_appearance_layers(fz_context *ctx, pdf_document *do
pdf_dict_putl(ctx, frm, n0, PDF_NAME_Resources, PDF_NAME_XObject, PDF_NAME_n0, NULL);
pdf_dict_putl(ctx, frm, ap, PDF_NAME_Resources, PDF_NAME_XObject, PDF_NAME_n2, NULL);
fzbuf = fz_new_buffer(ctx, 8);
- fz_buffer_printf(ctx, fzbuf, "q 1 0 0 1 0 0 cm /n0 Do Q q 1 0 0 1 0 0 cm /n2 Do Q");
+ fz_append_printf(ctx, fzbuf, "q 1 0 0 1 0 0 cm /n0 Do Q q 1 0 0 1 0 0 cm /n2 Do Q");
pdf_update_stream(ctx, doc, frm, fzbuf, 0);
fz_drop_buffer(ctx, fzbuf);
fzbuf = NULL;
fzbuf = fz_new_buffer(ctx, 8);
- fz_buffer_printf(ctx, fzbuf, "%% DSBlank");
+ fz_append_printf(ctx, fzbuf, "%% DSBlank");
pdf_update_stream(ctx, doc, n0, fzbuf, 0);
fz_drop_buffer(ctx, fzbuf);
fzbuf = NULL;
@@ -2410,10 +2410,10 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot
/* Display the distinguished name in the right-hand half */
fzbuf = fz_new_buffer(ctx, 256);
- fz_buffer_printf(ctx, fzbuf, "Digitally signed by %s", name);
- fz_buffer_printf(ctx, fzbuf, "\nDN: %s", dn);
+ fz_append_printf(ctx, fzbuf, "Digitally signed by %s", name);
+ fz_append_printf(ctx, fzbuf, "\nDN: %s", dn);
if (date)
- fz_buffer_printf(ctx, fzbuf, "\nDate: %s", date);
+ fz_append_printf(ctx, fzbuf, "\nDate: %s", date);
rect = annot_rect;
rect.x0 = (rect.x0 + rect.x1)/2.0f;
text = fit_text(ctx, &font_rec, fz_string_from_buffer(ctx, fzbuf), &rect);
diff --git a/source/pdf/pdf-crypt.c b/source/pdf/pdf-crypt.c
index aad7324e..8dfeb9ad 100644
--- a/source/pdf/pdf-crypt.c
+++ b/source/pdf/pdf-crypt.c
@@ -1035,22 +1035,22 @@ pdf_print_crypt(fz_context *ctx, fz_output *out, pdf_crypt *crypt)
{
int i;
- fz_printf(ctx, out, "crypt {\n");
+ fz_write_printf(ctx, out, "crypt {\n");
- fz_printf(ctx, out, "\tv=%d length=%d\n", crypt->v, crypt->length);
- fz_printf(ctx, out, "\tstmf method=%d length=%d\n", crypt->stmf.method, crypt->stmf.length);
- fz_printf(ctx, out, "\tstrf method=%d length=%d\n", crypt->strf.method, crypt->strf.length);
- fz_printf(ctx, out, "\tr=%d\n", crypt->r);
+ fz_write_printf(ctx, out, "\tv=%d length=%d\n", crypt->v, crypt->length);
+ fz_write_printf(ctx, out, "\tstmf method=%d length=%d\n", crypt->stmf.method, crypt->stmf.length);
+ fz_write_printf(ctx, out, "\tstrf method=%d length=%d\n", crypt->strf.method, crypt->strf.length);
+ fz_write_printf(ctx, out, "\tr=%d\n", crypt->r);
- fz_printf(ctx, out, "\to=<");
+ fz_write_printf(ctx, out, "\to=<");
for (i = 0; i < 32; i++)
- fz_printf(ctx, out, "%02X", crypt->o[i]);
- fz_printf(ctx, out, ">\n");
+ fz_write_printf(ctx, out, "%02X", crypt->o[i]);
+ fz_write_printf(ctx, out, ">\n");
- fz_printf(ctx, out, "\tu=<");
+ fz_write_printf(ctx, out, "\tu=<");
for (i = 0; i < 32; i++)
- fz_printf(ctx, out, "%02X", crypt->u[i]);
- fz_printf(ctx, out, ">\n");
+ fz_write_printf(ctx, out, "%02X", crypt->u[i]);
+ fz_write_printf(ctx, out, ">\n");
- fz_printf(ctx, out, "}\n");
+ fz_write_printf(ctx, out, "}\n");
}
diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c
index 702cee83..1857cc4c 100644
--- a/source/pdf/pdf-device.c
+++ b/source/pdf/pdf-device.c
@@ -107,7 +107,7 @@ pdf_dev_stroke_state(fz_context *ctx, pdf_device *pdev, const fz_stroke_state *s
return;
if (!gs->stroke_state || gs->stroke_state->linewidth != stroke_state->linewidth)
{
- fz_buffer_printf(ctx, gs->buf, "%f w\n", stroke_state->linewidth);
+ fz_append_printf(ctx, gs->buf, "%f w\n", stroke_state->linewidth);
}
if (!gs->stroke_state || gs->stroke_state->start_cap != stroke_state->start_cap)
{
@@ -115,18 +115,18 @@ pdf_dev_stroke_state(fz_context *ctx, pdf_device *pdev, const fz_stroke_state *s
/* FIXME: Triangle caps aren't supported in pdf */
if (cap == FZ_LINECAP_TRIANGLE)
cap = FZ_LINECAP_BUTT;
- fz_buffer_printf(ctx, gs->buf, "%d J\n", cap);
+ fz_append_printf(ctx, gs->buf, "%d J\n", cap);
}
if (!gs->stroke_state || gs->stroke_state->linejoin != stroke_state->linejoin)
{
int join = stroke_state->linejoin;
if (join == FZ_LINEJOIN_MITER_XPS)
join = FZ_LINEJOIN_MITER;
- fz_buffer_printf(ctx, gs->buf, "%d j\n", join);
+ fz_append_printf(ctx, gs->buf, "%d j\n", join);
}
if (!gs->stroke_state || gs->stroke_state->miterlimit != stroke_state->miterlimit)
{
- fz_buffer_printf(ctx, gs->buf, "%f M\n", stroke_state->miterlimit);
+ fz_append_printf(ctx, gs->buf, "%f M\n", stroke_state->miterlimit);
}
if (gs->stroke_state == NULL && stroke_state->dash_len == 0)
{}
@@ -135,10 +135,14 @@ pdf_dev_stroke_state(fz_context *ctx, pdf_device *pdev, const fz_stroke_state *s
{
int i;
if (stroke_state->dash_len == 0)
- fz_buffer_printf(ctx, gs->buf, "[");
+ fz_append_byte(ctx, gs->buf, '[');
for (i = 0; i < stroke_state->dash_len; i++)
- fz_buffer_printf(ctx, gs->buf, "%c%f", (i == 0 ? '[' : ' '), stroke_state->dash_list[i]);
- fz_buffer_printf(ctx, gs->buf, "]%f d\n", stroke_state->dash_phase);
+ {
+ if (i > 0)
+ fz_append_byte(ctx, gs->buf, ' ');
+ fz_append_printf(ctx, gs->buf, "%f", stroke_state->dash_list[i]);
+ }
+ fz_append_printf(ctx, gs->buf, "]%f d\n", stroke_state->dash_phase);
}
fz_drop_stroke_state(ctx, gs->stroke_state);
gs->stroke_state = fz_keep_stroke_state(ctx, stroke_state);
@@ -154,32 +158,28 @@ static void
pdf_dev_path_moveto(fz_context *ctx, void *arg, float x, float y)
{
fz_buffer *buf = (fz_buffer *)arg;
-
- fz_buffer_printf(ctx, buf, "%f %f m\n", x, y);
+ fz_append_printf(ctx, buf, "%f %f m\n", x, y);
}
static void
pdf_dev_path_lineto(fz_context *ctx, void *arg, float x, float y)
{
fz_buffer *buf = (fz_buffer *)arg;
-
- fz_buffer_printf(ctx, buf, "%f %f l\n", x, y);
+ fz_append_printf(ctx, buf, "%f %f l\n", x, y);
}
static void
pdf_dev_path_curveto(fz_context *ctx, void *arg, float x1, float y1, float x2, float y2, float x3, float y3)
{
fz_buffer *buf = (fz_buffer *)arg;
-
- fz_buffer_printf(ctx, buf, "%f %f %f %f %f %f c\n", x1, y1, x2, y2, x3, y3);
+ fz_append_printf(ctx, buf, "%f %f %f %f %f %f c\n", x1, y1, x2, y2, x3, y3);
}
static void
pdf_dev_path_close(fz_context *ctx, void *arg)
{
fz_buffer *buf = (fz_buffer *)arg;
-
- fz_buffer_printf(ctx, buf, "h\n");
+ fz_append_printf(ctx, buf, "h\n");
}
static const fz_path_walker pdf_dev_path_proc =
@@ -209,7 +209,7 @@ pdf_dev_ctm(fz_context *ctx, pdf_device *pdev, const fz_matrix *ctm)
fz_invert_matrix(&inverse, &gs->ctm);
fz_concat(&inverse, ctm, &inverse);
gs->ctm = *ctm;
- fz_buffer_printf(ctx, gs->buf, "%M cm\n", &inverse);
+ fz_append_printf(ctx, gs->buf, "%M cm\n", &inverse);
}
static void
@@ -256,22 +256,22 @@ pdf_dev_color(fz_context *ctx, pdf_device *pdev, fz_colorspace *colorspace, cons
switch (cspace + stroke*8)
{
case 1:
- fz_buffer_printf(ctx, gs->buf, "%f g\n", color[0]);
+ fz_append_printf(ctx, gs->buf, "%f g\n", color[0]);
break;
case 3:
- fz_buffer_printf(ctx, gs->buf, "%f %f %f rg\n", color[0], color[1], color[2]);
+ fz_append_printf(ctx, gs->buf, "%f %f %f rg\n", color[0], color[1], color[2]);
break;
case 4:
- fz_buffer_printf(ctx, gs->buf, "%f %f %f %f k\n", color[0], color[1], color[2], color[3]);
+ fz_append_printf(ctx, gs->buf, "%f %f %f %f k\n", color[0], color[1], color[2], color[3]);
break;
case 1+8:
- fz_buffer_printf(ctx, gs->buf, "%f G\n", color[0]);
+ fz_append_printf(ctx, gs->buf, "%f G\n", color[0]);
break;
case 3+8:
- fz_buffer_printf(ctx, gs->buf, "%f %f %f RG\n", color[0], color[1], color[2]);
+ fz_append_printf(ctx, gs->buf, "%f %f %f RG\n", color[0], color[1], color[2]);
break;
case 4+8:
- fz_buffer_printf(ctx, gs->buf, "%f %f %f %f K\n", color[0], color[1], color[2], color[3]);
+ fz_append_printf(ctx, gs->buf, "%f %f %f %f K\n", color[0], color[1], color[2], color[3]);
break;
}
}
@@ -331,7 +331,7 @@ pdf_dev_alpha(fz_context *ctx, pdf_device *pdev, float alpha, int stroke)
}
pdev->num_alphas++;
}
- fz_buffer_printf(ctx, gs->buf, "/Alp%d gs\n", i);
+ fz_append_printf(ctx, gs->buf, "/Alp%d gs\n", i);
}
static int
@@ -386,7 +386,7 @@ pdf_dev_font(fz_context *ctx, pdf_device *pdev, fz_font *font)
gs->font = pdf_dev_add_font_res(ctx, pdev, font);
- fz_buffer_printf(ctx, gs->buf, "/F%d 1 Tf\n", gs->font);
+ fz_append_printf(ctx, gs->buf, "/F%d 1 Tf\n", gs->font);
}
static void
@@ -407,7 +407,7 @@ pdf_dev_push_new_buf(fz_context *ctx, pdf_device *pdev, fz_buffer *buf, void (*o
fz_keep_buffer(ctx, pdev->gstates[pdev->num_gstates].buf);
pdev->gstates[pdev->num_gstates].on_pop = on_pop;
pdev->gstates[pdev->num_gstates].on_pop_arg = on_pop_arg;
- fz_buffer_printf(ctx, pdev->gstates[pdev->num_gstates].buf, "q\n");
+ fz_append_string(ctx, pdev->gstates[pdev->num_gstates].buf, "q\n");
pdev->num_gstates++;
}
@@ -423,7 +423,7 @@ pdf_dev_pop(fz_context *ctx, pdf_device *pdev)
gstate *gs = CURRENT_GSTATE(pdev);
void *arg = gs->on_pop_arg;
- fz_buffer_printf(ctx, gs->buf, "Q\n");
+ fz_append_string(ctx, gs->buf, "Q\n");
if (gs->on_pop)
gs->on_pop(ctx, pdev, arg);
pdev->num_gstates--;
@@ -451,7 +451,7 @@ pdf_dev_text_span(fz_context *ctx, pdf_device *pdev, fz_text_span *span)
fz_invert_matrix(&inv_tm, &tm);
- fz_buffer_printf(ctx, gs->buf, "%M Tm\n[<", &tm);
+ fz_append_printf(ctx, gs->buf, "%M Tm\n[<", &tm);
for (i = 0; i < span->len; ++i)
{
@@ -472,17 +472,17 @@ pdf_dev_text_span(fz_context *ctx, pdf_device *pdev, fz_text_span *span)
if (dx != 0 || dy != 0)
{
if (span->wmode == 0 && dy == 0)
- fz_buffer_printf(ctx, gs->buf, ">%d<", -dx);
+ fz_append_printf(ctx, gs->buf, ">%d<", -dx);
else if (span->wmode == 1 && dx == 0)
- fz_buffer_printf(ctx, gs->buf, ">%d<", -dy);
+ fz_append_printf(ctx, gs->buf, ">%d<", -dy);
else
- fz_buffer_printf(ctx, gs->buf, ">]TJ\n%M Tm\n[<", &tm);
+ fz_append_printf(ctx, gs->buf, ">]TJ\n%M Tm\n[<", &tm);
}
if (fz_font_t3_procs(ctx, span->font))
- fz_buffer_printf(ctx, gs->buf, "%02x", it->gid);
+ fz_append_printf(ctx, gs->buf, "%02x", it->gid);
else
- fz_buffer_printf(ctx, gs->buf, "%04x", it->gid);
+ fz_append_printf(ctx, gs->buf, "%04x", it->gid);
adv = fz_advance_glyph(ctx, span->font, it->gid, span->wmode);
if (span->wmode == 0)
@@ -491,7 +491,7 @@ pdf_dev_text_span(fz_context *ctx, pdf_device *pdev, fz_text_span *span)
fz_pre_translate(&tm, 0, adv);
}
- fz_buffer_printf(ctx, gs->buf, ">]TJ\n");
+ fz_append_string(ctx, gs->buf, ">]TJ\n");
}
static void
@@ -502,7 +502,7 @@ pdf_dev_trm(fz_context *ctx, pdf_device *pdev, int trm)
if (gs->text_rendering_mode == trm)
return;
gs->text_rendering_mode = trm;
- fz_buffer_printf(ctx, gs->buf, "%d Tr\n", trm);
+ fz_append_printf(ctx, gs->buf, "%d Tr\n", trm);
}
static void
@@ -512,7 +512,7 @@ pdf_dev_begin_text(fz_context *ctx, pdf_device *pdev, const fz_matrix *tm, int t
if (!pdev->in_text)
{
gstate *gs = CURRENT_GSTATE(pdev);
- fz_buffer_printf(ctx, gs->buf, "BT\n");
+ fz_append_string(ctx, gs->buf, "BT\n");
pdev->in_text = 1;
}
}
@@ -525,7 +525,7 @@ pdf_dev_end_text(fz_context *ctx, pdf_device *pdev)
if (!pdev->in_text)
return;
pdev->in_text = 0;
- fz_buffer_printf(ctx, gs->buf, "ET\n");
+ fz_append_string(ctx, gs->buf, "ET\n");
}
static int
@@ -640,7 +640,7 @@ pdf_dev_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even
pdf_dev_color(ctx, pdev, colorspace, color, 0);
pdf_dev_ctm(ctx, pdev, ctm);
pdf_dev_path(ctx, pdev, path);
- fz_buffer_printf(ctx, gs->buf, (even_odd ? "f*\n" : "f\n"));
+ fz_append_string(ctx, gs->buf, (even_odd ? "f*\n" : "f\n"));
}
static void
@@ -656,7 +656,7 @@ pdf_dev_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const
pdf_dev_ctm(ctx, pdev, ctm);
pdf_dev_stroke_state(ctx, pdev, stroke);
pdf_dev_path(ctx, pdev, path);
- fz_buffer_printf(ctx, gs->buf, "S\n");
+ fz_append_string(ctx, gs->buf, "S\n");
}
static void
@@ -670,7 +670,7 @@ pdf_dev_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even
pdf_dev_ctm(ctx, pdev, ctm);
pdf_dev_path(ctx, pdev, path);
gs = CURRENT_GSTATE(pdev);
- fz_buffer_printf(ctx, gs->buf, (even_odd ? "W* n\n" : "W n\n"));
+ fz_append_string(ctx, gs->buf, (even_odd ? "W* n\n" : "W n\n"));
}
static void
@@ -688,7 +688,7 @@ pdf_dev_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, c
pdf_dev_ctm(ctx, pdev, ctm);
pdf_dev_path(ctx, pdev, path);
gs = CURRENT_GSTATE(pdev);
- fz_buffer_printf(ctx, gs->buf, "W n\n");
+ fz_append_string(ctx, gs->buf, "W n\n");
}
static void
@@ -823,7 +823,7 @@ pdf_dev_fill_image(fz_context *ctx, fz_device *dev, fz_image *image, const fz_ma
fz_pre_scale(&local_ctm, 1, -1);
fz_pre_translate(&local_ctm, 0, -1);
pdf_dev_ctm(ctx, pdev, &local_ctm);
- fz_buffer_printf(ctx, gs->buf, "/Img%d Do\n", pdf_to_num(ctx, im_res));
+ fz_append_printf(ctx, gs->buf, "/Img%d Do\n", pdf_to_num(ctx, im_res));
/* Possibly add to page resources */
pdf_dev_add_image_res(ctx, dev, im_res);
@@ -855,7 +855,7 @@ pdf_dev_fill_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, const
fz_warn(ctx, "pdf_add_image: problem adding image resource");
return;
}
- fz_buffer_printf(ctx, gs->buf, "q\n");
+ fz_append_string(ctx, gs->buf, "q\n");
pdf_dev_alpha(ctx, pdev, alpha, 0);
pdf_dev_color(ctx, pdev, colorspace, color, 0);
@@ -863,7 +863,7 @@ pdf_dev_fill_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, const
fz_pre_scale(&local_ctm, 1, -1);
fz_pre_translate(&local_ctm, 0, -1);
pdf_dev_ctm(ctx, pdev, &local_ctm);
- fz_buffer_printf(ctx, gs->buf, "/Img%d Do Q\n", pdf_to_num(ctx, im_res));
+ fz_append_printf(ctx, gs->buf, "/Img%d Do Q\n", pdf_to_num(ctx, im_res));
/* Possibly add to page resources */
pdf_dev_add_image_res(ctx, dev, im_res);
@@ -937,7 +937,7 @@ pdf_dev_begin_mask(fz_context *ctx, fz_device *dev, const fz_rect *bbox, int lum
pdf_drop_obj(ctx, egs_ref);
}
gs = CURRENT_GSTATE(pdev);
- fz_buffer_printf(ctx, gs->buf, "/SM%d gs\n", pdev->num_smasks-1);
+ fz_append_printf(ctx, gs->buf, "/SM%d gs\n", pdev->num_smasks-1);
}
fz_always(ctx)
{
@@ -966,13 +966,13 @@ pdf_dev_end_mask(fz_context *ctx, fz_device *dev)
/* Here we do part of the pop, but not all of it. */
pdf_dev_end_text(ctx, pdev);
- fz_buffer_printf(ctx, buf, "Q\n");
+ fz_append_string(ctx, buf, "Q\n");
pdf_update_stream(ctx, doc, form_ref, buf, 0);
fz_drop_buffer(ctx, buf);
gs->buf = fz_keep_buffer(ctx, gs[-1].buf);
gs->on_pop_arg = NULL;
pdf_drop_obj(ctx, form_ref);
- fz_buffer_printf(ctx, gs->buf, "q\n");
+ fz_append_string(ctx, gs->buf, "q\n");
}
static void
@@ -1006,7 +1006,7 @@ pdf_dev_begin_group(fz_context *ctx, fz_device *dev, const fz_rect *bbox, int is
/* Add the call to this group */
gs = CURRENT_GSTATE(pdev);
- fz_buffer_printf(ctx, gs->buf, "/BlendMode%d gs /Fm%d Do\n", blendmode, num);
+ fz_append_printf(ctx, gs->buf, "/BlendMode%d gs /Fm%d Do\n", blendmode, num);
/* Now, everything we get until the end of group needs to go into a
* new buffer, which will be the stream contents for the form. */
@@ -1133,7 +1133,7 @@ fz_device *pdf_new_pdf_device(fz_context *ctx, pdf_document *doc, const fz_matri
dev->max_gstates = 1;
if (topctm != &fz_identity)
- fz_buffer_printf(ctx, buf, "%M cm\n", topctm);
+ fz_append_printf(ctx, buf, "%M cm\n", topctm);
}
fz_catch(ctx)
{
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index e3be140a..3cced0d8 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -960,7 +960,7 @@ hail_mary_cmp_key(fz_context *ctx, void *k0, void *k1)
static void
hail_mary_print_key(fz_context *ctx, fz_output *out, void *key_)
{
- fz_printf(ctx, out, "hail mary ");
+ fz_write_printf(ctx, out, "hail mary ");
}
static fz_store_type hail_mary_store_type =
@@ -1436,30 +1436,30 @@ pdf_print_font(fz_context *ctx, fz_output *out, pdf_font_desc *fontdesc)
{
int i;
- fz_printf(ctx, out, "fontdesc {\n");
+ fz_write_printf(ctx, out, "fontdesc {\n");
if (fontdesc->font->ft_face)
- fz_printf(ctx, out, "\tfreetype font\n");
+ fz_write_printf(ctx, out, "\tfreetype font\n");
if (fontdesc->font->t3procs)
- fz_printf(ctx, out, "\ttype3 font\n");
+ fz_write_printf(ctx, out, "\ttype3 font\n");
- fz_printf(ctx, out, "\twmode %d\n", fontdesc->wmode);
- fz_printf(ctx, out, "\tDW %d\n", fontdesc->dhmtx.w);
+ fz_write_printf(ctx, out, "\twmode %d\n", fontdesc->wmode);
+ fz_write_printf(ctx, out, "\tDW %d\n", fontdesc->dhmtx.w);
- fz_printf(ctx, out, "\tW {\n");
+ fz_write_printf(ctx, out, "\tW {\n");
for (i = 0; i < fontdesc->hmtx_len; i++)
- fz_printf(ctx, out, "\t\t<%04x> <%04x> %d\n",
+ fz_write_printf(ctx, out, "\t\t<%04x> <%04x> %d\n",
fontdesc->hmtx[i].lo, fontdesc->hmtx[i].hi, fontdesc->hmtx[i].w);
- fz_printf(ctx, out, "\t}\n");
+ fz_write_printf(ctx, out, "\t}\n");
if (fontdesc->wmode)
{
- fz_printf(ctx, out, "\tDW2 [%d %d]\n", fontdesc->dvmtx.y, fontdesc->dvmtx.w);
- fz_printf(ctx, out, "\tW2 {\n");
+ fz_write_printf(ctx, out, "\tDW2 [%d %d]\n", fontdesc->dvmtx.y, fontdesc->dvmtx.w);
+ fz_write_printf(ctx, out, "\tW2 {\n");
for (i = 0; i < fontdesc->vmtx_len; i++)
- fz_printf(ctx, out, "\t\t<%04x> <%04x> %d %d %d\n", fontdesc->vmtx[i].lo, fontdesc->vmtx[i].hi,
+ fz_write_printf(ctx, out, "\t\t<%04x> <%04x> %d %d %d\n", fontdesc->vmtx[i].lo, fontdesc->vmtx[i].hi,
fontdesc->vmtx[i].x, fontdesc->vmtx[i].y, fontdesc->vmtx[i].w);
- fz_printf(ctx, out, "\t}\n");
+ fz_write_printf(ctx, out, "\t}\n");
}
}
@@ -1935,15 +1935,15 @@ pdf_add_to_unicode(fz_context *ctx, pdf_document *doc, fz_font *font)
fz_try(ctx)
{
/* Header boiler plate */
- fz_buffer_printf(ctx, buf, "/CIDInit /ProcSet findresource begin\n");
- fz_buffer_printf(ctx, buf, "12 dict begin\n");
- fz_buffer_printf(ctx, buf, "begincmap\n");
- fz_buffer_printf(ctx, buf, "/CIDSystemInfo <</Registry(Adobe)/Ordering(UCS)/Supplement 0>> def\n");
- fz_buffer_printf(ctx, buf, "/CMapName /Adobe-Identity-UCS def\n");
- fz_buffer_printf(ctx, buf, "/CMapType 2 def\n");
- fz_buffer_printf(ctx, buf, "1 begincodespacerange\n");
- fz_buffer_printf(ctx, buf, "<0000> <FFFF>\n");
- fz_buffer_printf(ctx, buf, "endcodespacerange\n");
+ fz_append_string(ctx, buf, "/CIDInit /ProcSet findresource begin\n");
+ fz_append_string(ctx, buf, "12 dict begin\n");
+ fz_append_string(ctx, buf, "begincmap\n");
+ fz_append_string(ctx, buf, "/CIDSystemInfo <</Registry(Adobe)/Ordering(UCS)/Supplement 0>> def\n");
+ fz_append_string(ctx, buf, "/CMapName /Adobe-Identity-UCS def\n");
+ fz_append_string(ctx, buf, "/CMapType 2 def\n");
+ fz_append_string(ctx, buf, "1 begincodespacerange\n");
+ fz_append_string(ctx, buf, "<0000> <FFFF>\n");
+ fz_append_string(ctx, buf, "endcodespacerange\n");
/* Note to have a valid CMap, the number of entries in table set can
* not exceed 100, so we have to break into multiple tables. Also, note
@@ -1957,11 +1957,11 @@ pdf_add_to_unicode(fz_context *ctx, pdf_document *doc, fz_font *font)
int count = 0;
if (num_seq > 100)
{
- fz_buffer_printf(ctx, buf, "100 beginbfrange\n");
+ fz_append_string(ctx, buf, "100 beginbfrange\n");
num_seq -= 100;
}
else
- fz_buffer_printf(ctx, buf, "%d beginbfrange\n", num_seq);
+ fz_append_printf(ctx, buf, "%d beginbfrange\n", num_seq);
for (k = 0; k < face->num_glyphs; k += n)
{
n = next_range(table, face->num_glyphs, k);
@@ -1969,21 +1969,21 @@ pdf_add_to_unicode(fz_context *ctx, pdf_document *doc, fz_font *font)
{
if (count == 100)
{
- fz_buffer_printf(ctx, buf, "endbfrange\n");
+ fz_append_string(ctx, buf, "endbfrange\n");
if (num_seq > 100)
{
- fz_buffer_printf(ctx, buf, "100 beginbfrange\n");
+ fz_append_string(ctx, buf, "100 beginbfrange\n");
num_seq -= 100;
}
else
- fz_buffer_printf(ctx, buf, "%d beginbfrange\n", num_seq);
+ fz_append_printf(ctx, buf, "%d beginbfrange\n", num_seq);
count = 0;
}
- fz_buffer_printf(ctx, buf, "<%04x> <%04x> <%04x>\n", k, k+n-1, table[k]);
+ fz_append_printf(ctx, buf, "<%04x> <%04x> <%04x>\n", k, k+n-1, table[k]);
++count;
}
}
- fz_buffer_printf(ctx, buf, "endbfrange\n");
+ fz_append_string(ctx, buf, "endbfrange\n");
}
/* Then the singles */
@@ -1992,11 +1992,11 @@ pdf_add_to_unicode(fz_context *ctx, pdf_document *doc, fz_font *font)
int count = 0;
if (num_chr > 100)
{
- fz_buffer_printf(ctx, buf, "100 beginbfchar\n");
+ fz_append_string(ctx, buf, "100 beginbfchar\n");
num_chr -= 100;
}
else
- fz_buffer_printf(ctx, buf, "%d beginbfchar\n", num_chr);
+ fz_append_printf(ctx, buf, "%d beginbfchar\n", num_chr);
for (k = 0; k < face->num_glyphs; k += n)
{
n = next_range(table, face->num_glyphs, k);
@@ -2004,27 +2004,27 @@ pdf_add_to_unicode(fz_context *ctx, pdf_document *doc, fz_font *font)
{
if (count == 100)
{
- fz_buffer_printf(ctx, buf, "endbfchar\n");
+ fz_append_string(ctx, buf, "endbfchar\n");
if (num_chr > 100)
{
- fz_buffer_printf(ctx, buf, "100 beginbfchar\n");
+ fz_append_string(ctx, buf, "100 beginbfchar\n");
num_chr -= 100;
}
else
- fz_buffer_printf(ctx, buf, "%d beginbfchar\n", num_chr);
+ fz_append_printf(ctx, buf, "%d beginbfchar\n", num_chr);
count = 0;
}
- fz_buffer_printf(ctx, buf, "<%04x> <%04x>\n", k, table[k]);
+ fz_append_printf(ctx, buf, "<%04x> <%04x>\n", k, table[k]);
++count;
}
}
- fz_buffer_printf(ctx, buf, "endbfchar\n");
+ fz_append_string(ctx, buf, "endbfchar\n");
}
/* Trailer boiler plate */
- fz_buffer_printf(ctx, buf, "endcmap\n");
- fz_buffer_printf(ctx, buf, "CMapName currentdict /CMap defineresource pop\n");
- fz_buffer_printf(ctx, buf, "end\nend\n");
+ fz_append_string(ctx, buf, "endcmap\n");
+ fz_append_string(ctx, buf, "CMapName currentdict /CMap defineresource pop\n");
+ fz_append_string(ctx, buf, "end\nend\n");
fobj = pdf_new_dict(ctx, doc, 3);
fref = pdf_add_object(ctx, doc, fobj);
diff --git a/source/pdf/pdf-function.c b/source/pdf/pdf-function.c
index db76ba4b..8dda0cb2 100644
--- a/source/pdf/pdf-function.c
+++ b/source/pdf/pdf-function.c
@@ -114,7 +114,7 @@ pdf_print_ps_stack(fz_context *ctx, fz_output *out, ps_stack *st)
{
int i;
- fz_printf(ctx, out, "stack:");
+ fz_write_printf(ctx, out, "stack:");
for (i = 0; i < st->sp; i++)
{
@@ -122,22 +122,22 @@ pdf_print_ps_stack(fz_context *ctx, fz_output *out, ps_stack *st)
{
case PS_BOOL:
if (st->stack[i].u.b)
- fz_printf(ctx, out, " true");
+ fz_write_printf(ctx, out, " true");
else
- fz_printf(ctx, out, " false");
+ fz_write_printf(ctx, out, " false");
break;
case PS_INT:
- fz_printf(ctx, out, " %d", st->stack[i].u.i);
+ fz_write_printf(ctx, out, " %d", st->stack[i].u.i);
break;
case PS_REAL:
- fz_printf(ctx, out, " %g", st->stack[i].u.f);
+ fz_write_printf(ctx, out, " %g", st->stack[i].u.f);
break;
}
}
- fz_printf(ctx, out, "\n");
+ fz_write_printf(ctx, out, "\n");
}
static void
@@ -1390,12 +1390,12 @@ pdf_debug_indent(fz_context *ctx, fz_output *out, char *prefix, int level, char
{
int i;
- fz_puts(ctx, out, prefix);
+ fz_write_string(ctx, out, prefix);
for (i = 0; i < level; i++)
- fz_putc(ctx, out, '\t');
+ fz_write_byte(ctx, out, '\t');
- fz_puts(ctx, out, suffix);
+ fz_write_string(ctx, out, suffix);
}
static void
@@ -1510,78 +1510,78 @@ pdf_debug_function_imp(fz_context *ctx, fz_output *out, fz_function *func_, int
}
pdf_debug_indent(ctx, out, "\n", level, "");
- fz_printf(ctx, out, "%d input -> %d output\n", func->base.m, func->base.n);
+ fz_write_printf(ctx, out, "%d input -> %d output\n", func->base.m, func->base.n);
pdf_debug_indent(ctx, out, "", level, "domain ");
for (i = 0; i < func->base.m; i++)
- fz_printf(ctx, out, "%g %g ", func->domain[i][0], func->domain[i][1]);
- fz_printf(ctx, out, "\n");
+ fz_write_printf(ctx, out, "%g %g ", func->domain[i][0], func->domain[i][1]);
+ fz_write_printf(ctx, out, "\n");
if (func->has_range)
{
pdf_debug_indent(ctx, out, "", level, "range ");
for (i = 0; i < func->base.n; i++)
- fz_printf(ctx, out, "%g %g ", func->range[i][0], func->range[i][1]);
- fz_printf(ctx, out, "\n");
+ fz_write_printf(ctx, out, "%g %g ", func->range[i][0], func->range[i][1]);
+ fz_write_printf(ctx, out, "\n");
}
switch (func->type)
{
case SAMPLE:
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "bps: %d\n", func->u.sa.bps);
+ fz_write_printf(ctx, out, "bps: %d\n", func->u.sa.bps);
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "size: [ ");
+ fz_write_printf(ctx, out, "size: [ ");
for (i = 0; i < func->base.m; i++)
- fz_printf(ctx, out, "%d ", func->u.sa.size[i]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%d ", func->u.sa.size[i]);
+ fz_write_printf(ctx, out, "]\n");
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "encode: [ ");
+ fz_write_printf(ctx, out, "encode: [ ");
for (i = 0; i < func->base.m; i++)
- fz_printf(ctx, out, "%g %g ", func->u.sa.encode[i][0], func->u.sa.encode[i][1]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g %g ", func->u.sa.encode[i][0], func->u.sa.encode[i][1]);
+ fz_write_printf(ctx, out, "]\n");
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "decode: [ ");
+ fz_write_printf(ctx, out, "decode: [ ");
for (i = 0; i < func->base.m; i++)
- fz_printf(ctx, out, "%g %g ", func->u.sa.decode[i][0], func->u.sa.decode[i][1]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g %g ", func->u.sa.decode[i][0], func->u.sa.decode[i][1]);
+ fz_write_printf(ctx, out, "]\n");
break;
case EXPONENTIAL:
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "n: %g\n", func->u.e.n);
+ fz_write_printf(ctx, out, "n: %g\n", func->u.e.n);
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "c0: [ ");
+ fz_write_printf(ctx, out, "c0: [ ");
for (i = 0; i < func->base.n; i++)
- fz_printf(ctx, out, "%g ", func->u.e.c0[i]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g ", func->u.e.c0[i]);
+ fz_write_printf(ctx, out, "]\n");
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "c1: [ ");
+ fz_write_printf(ctx, out, "c1: [ ");
for (i = 0; i < func->base.n; i++)
- fz_printf(ctx, out, "%g ", func->u.e.c1[i]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g ", func->u.e.c1[i]);
+ fz_write_printf(ctx, out, "]\n");
break;
case STITCHING:
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "%d functions\n", func->u.st.k);
+ fz_write_printf(ctx, out, "%d functions\n", func->u.st.k);
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "bounds: [ ");
+ fz_write_printf(ctx, out, "bounds: [ ");
for (i = 0; i < func->u.st.k - 1; i++)
- fz_printf(ctx, out, "%g ", func->u.st.bounds[i]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g ", func->u.st.bounds[i]);
+ fz_write_printf(ctx, out, "]\n");
pdf_debug_indent(ctx, out, "", level, "");
- fz_printf(ctx, out, "encode: [ ");
+ fz_write_printf(ctx, out, "encode: [ ");
for (i = 0; i < func->u.st.k * 2; i++)
- fz_printf(ctx, out, "%g ", func->u.st.encode[i]);
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "%g ", func->u.st.encode[i]);
+ fz_write_printf(ctx, out, "]\n");
for (i = 0; i < func->u.st.k; i++)
pdf_debug_function_imp(ctx, out, func->u.st.funcs[i], level);
@@ -1589,7 +1589,7 @@ pdf_debug_function_imp(fz_context *ctx, fz_output *out, fz_function *func_, int
case POSTSCRIPT:
pdf_debug_ps_func_code(ctx, out, func->u.p.code, func->u.p.code, level);
- fz_printf(ctx, out, "\n");
+ fz_write_printf(ctx, out, "\n");
break;
}
diff --git a/source/pdf/pdf-lex.c b/source/pdf/pdf-lex.c
index ec66f56e..6a9ca906 100644
--- a/source/pdf/pdf-lex.c
+++ b/source/pdf/pdf-lex.c
@@ -615,47 +615,45 @@ pdf_lex_no_string(fz_context *ctx, fz_stream *f, pdf_lexbuf *buf)
}
}
-void pdf_print_token(fz_context *ctx, fz_buffer *fzbuf, int tok, pdf_lexbuf *buf)
+void pdf_append_token(fz_context *ctx, fz_buffer *fzbuf, int tok, pdf_lexbuf *buf)
{
switch (tok)
{
case PDF_TOK_NAME:
- fz_buffer_printf(ctx, fzbuf, "/%s", buf->scratch);
+ fz_append_printf(ctx, fzbuf, "/%s", buf->scratch);
break;
case PDF_TOK_STRING:
if (buf->len >= buf->size)
pdf_lexbuf_grow(ctx, buf);
buf->scratch[buf->len] = 0;
- fz_buffer_print_pdf_string(ctx, fzbuf, buf->scratch);
+ fz_append_pdf_string(ctx, fzbuf, buf->scratch);
break;
case PDF_TOK_OPEN_DICT:
- fz_buffer_printf(ctx, fzbuf, "<<");
+ fz_append_string(ctx, fzbuf, "<<");
break;
case PDF_TOK_CLOSE_DICT:
- fz_buffer_printf(ctx, fzbuf, ">>");
+ fz_append_string(ctx, fzbuf, ">>");
break;
case PDF_TOK_OPEN_ARRAY:
- fz_buffer_printf(ctx, fzbuf, "[");
+ fz_append_byte(ctx, fzbuf, '[');
break;
case PDF_TOK_CLOSE_ARRAY:
- fz_buffer_printf(ctx, fzbuf, "]");
+ fz_append_byte(ctx, fzbuf, ']');
break;
case PDF_TOK_OPEN_BRACE:
- fz_buffer_printf(ctx, fzbuf, "{");
+ fz_append_byte(ctx, fzbuf, '{');
break;
case PDF_TOK_CLOSE_BRACE:
- fz_buffer_printf(ctx, fzbuf, "}");
+ fz_append_byte(ctx, fzbuf, '}');
break;
case PDF_TOK_INT:
- fz_buffer_printf(ctx, fzbuf, "%d", buf->i);
+ fz_append_printf(ctx, fzbuf, "%d", buf->i);
break;
case PDF_TOK_REAL:
- {
- fz_buffer_printf(ctx, fzbuf, "%g", buf->f);
- }
+ fz_append_printf(ctx, fzbuf, "%g", buf->f);
break;
default:
- fz_buffer_printf(ctx, fzbuf, "%s", buf->scratch);
+ fz_append_data(ctx, fzbuf, buf->scratch, buf->len);
break;
}
}
diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c
index 736fe88b..86a204a6 100644
--- a/source/pdf/pdf-object.c
+++ b/source/pdf/pdf-object.c
@@ -2132,13 +2132,13 @@ int pdf_print_obj(fz_context *ctx, fz_output *out, pdf_obj *obj, int tight)
if ((n + 1) < sizeof buf)
{
pdf_sprint_obj(ctx, buf, sizeof buf, obj, tight);
- fz_write(ctx, out, buf, n);
+ fz_write_data(ctx, out, buf, n);
}
else
{
ptr = fz_malloc(ctx, n + 1);
pdf_sprint_obj(ctx, ptr, n + 1, obj, tight);
- fz_write(ctx, out, ptr, n);
+ fz_write_data(ctx, out, ptr, n);
fz_free(ctx, ptr);
}
return n;
diff --git a/source/pdf/pdf-op-buffer.c b/source/pdf/pdf-op-buffer.c
index 1bfe982a..b916ea3f 100644
--- a/source/pdf/pdf-op-buffer.c
+++ b/source/pdf/pdf-op-buffer.c
@@ -17,7 +17,7 @@ pdf_out_w(fz_context *ctx, pdf_processor *proc, float linewidth)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "%f w\n", linewidth);
+ fz_write_printf(ctx, out, "%f w\n", linewidth);
}
static void
@@ -25,7 +25,7 @@ pdf_out_j(fz_context *ctx, pdf_processor *proc, int linejoin)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "%d j\n", linejoin);
+ fz_write_printf(ctx, out, "%d j\n", linejoin);
}
static void
@@ -33,7 +33,7 @@ pdf_out_J(fz_context *ctx, pdf_processor *proc, int linecap)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "%d J\n", linecap);
+ fz_write_printf(ctx, out, "%d J\n", linecap);
}
static void
@@ -41,7 +41,7 @@ pdf_out_M(fz_context *ctx, pdf_processor *proc, float a)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "%f M\n", a);
+ fz_write_printf(ctx, out, "%f M\n", a);
}
static void
@@ -51,7 +51,7 @@ pdf_out_d(fz_context *ctx, pdf_processor *proc, pdf_obj *array, float phase)
if (!((pdf_output_processor*)proc)->extgstate)
{
pdf_print_obj(ctx, out, array, 1);
- fz_printf(ctx, out, " %f d\n", phase);
+ fz_write_printf(ctx, out, " %f d\n", phase);
}
}
@@ -60,7 +60,7 @@ pdf_out_ri(fz_context *ctx, pdf_processor *proc, const char *intent)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "/%s ri\n", intent);
+ fz_write_printf(ctx, out, "/%s ri\n", intent);
}
static void
@@ -68,7 +68,7 @@ pdf_out_i(fz_context *ctx, pdf_processor *proc, float flatness)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "%f i\n", flatness);
+ fz_write_printf(ctx, out, "%f i\n", flatness);
}
static void
@@ -76,7 +76,7 @@ pdf_out_gs_begin(fz_context *ctx, pdf_processor *proc, const char *name, pdf_obj
{
fz_output *out = ((pdf_output_processor*)proc)->out;
((pdf_output_processor*)proc)->extgstate = 1;
- fz_printf(ctx, out, "/%s gs\n", name);
+ fz_write_printf(ctx, out, "/%s gs\n", name);
}
static void
@@ -91,21 +91,21 @@ static void
pdf_out_q(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "q\n");
+ fz_write_printf(ctx, out, "q\n");
}
static void
pdf_out_Q(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "Q\n");
+ fz_write_printf(ctx, out, "Q\n");
}
static void
pdf_out_cm(fz_context *ctx, pdf_processor *proc, float a, float b, float c, float d, float e, float f)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f %f %f cm\n", a, b, c, d, e, f);
+ fz_write_printf(ctx, out, "%f %f %f %f %f %f cm\n", a, b, c, d, e, f);
}
/* path construction */
@@ -114,49 +114,49 @@ static void
pdf_out_m(fz_context *ctx, pdf_processor *proc, float x, float y)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f m\n", x, y);
+ fz_write_printf(ctx, out, "%f %f m\n", x, y);
}
static void
pdf_out_l(fz_context *ctx, pdf_processor *proc, float x, float y)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f l\n", x, y);
+ fz_write_printf(ctx, out, "%f %f l\n", x, y);
}
static void
pdf_out_c(fz_context *ctx, pdf_processor *proc, float x1, float y1, float x2, float y2, float x3, float y3)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f %f %f c\n", x1, y1, x2, y2, x3, y3);
+ fz_write_printf(ctx, out, "%f %f %f %f %f %f c\n", x1, y1, x2, y2, x3, y3);
}
static void
pdf_out_v(fz_context *ctx, pdf_processor *proc, float x2, float y2, float x3, float y3)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f v\n", x2, y2, x3, y3);
+ fz_write_printf(ctx, out, "%f %f %f %f v\n", x2, y2, x3, y3);
}
static void
pdf_out_y(fz_context *ctx, pdf_processor *proc, float x1, float y1, float x3, float y3)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f y\n", x1, y1, x3, y3);
+ fz_write_printf(ctx, out, "%f %f %f %f y\n", x1, y1, x3, y3);
}
static void
pdf_out_h(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "h\n");
+ fz_write_printf(ctx, out, "h\n");
}
static void
pdf_out_re(fz_context *ctx, pdf_processor *proc, float x, float y, float w, float h)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f re\n", x, y, w, h);
+ fz_write_printf(ctx, out, "%f %f %f %f re\n", x, y, w, h);
}
/* path painting */
@@ -165,70 +165,70 @@ static void
pdf_out_S(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "S\n");
+ fz_write_printf(ctx, out, "S\n");
}
static void
pdf_out_s(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "s\n");
+ fz_write_printf(ctx, out, "s\n");
}
static void
pdf_out_F(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "F\n");
+ fz_write_printf(ctx, out, "F\n");
}
static void
pdf_out_f(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "f\n");
+ fz_write_printf(ctx, out, "f\n");
}
static void
pdf_out_fstar(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "f*\n");
+ fz_write_printf(ctx, out, "f*\n");
}
static void
pdf_out_B(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "B\n");
+ fz_write_printf(ctx, out, "B\n");
}
static void
pdf_out_Bstar(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "B*\n");
+ fz_write_printf(ctx, out, "B*\n");
}
static void
pdf_out_b(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "b\n");
+ fz_write_printf(ctx, out, "b\n");
}
static void
pdf_out_bstar(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "b*\n");
+ fz_write_printf(ctx, out, "b*\n");
}
static void
pdf_out_n(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "n\n");
+ fz_write_printf(ctx, out, "n\n");
}
/* clipping paths */
@@ -237,14 +237,14 @@ static void
pdf_out_W(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "W\n");
+ fz_write_printf(ctx, out, "W\n");
}
static void
pdf_out_Wstar(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "W*\n");
+ fz_write_printf(ctx, out, "W*\n");
}
/* text objects */
@@ -253,14 +253,14 @@ static void
pdf_out_BT(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "BT\n");
+ fz_write_printf(ctx, out, "BT\n");
}
static void
pdf_out_ET(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "ET\n");
+ fz_write_printf(ctx, out, "ET\n");
}
/* text state */
@@ -269,28 +269,28 @@ static void
pdf_out_Tc(fz_context *ctx, pdf_processor *proc, float charspace)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f Tc\n", charspace);
+ fz_write_printf(ctx, out, "%f Tc\n", charspace);
}
static void
pdf_out_Tw(fz_context *ctx, pdf_processor *proc, float wordspace)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f Tw\n", wordspace);
+ fz_write_printf(ctx, out, "%f Tw\n", wordspace);
}
static void
pdf_out_Tz(fz_context *ctx, pdf_processor *proc, float scale)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f Tz\n", scale);
+ fz_write_printf(ctx, out, "%f Tz\n", scale);
}
static void
pdf_out_TL(fz_context *ctx, pdf_processor *proc, float leading)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f TL\n", leading);
+ fz_write_printf(ctx, out, "%f TL\n", leading);
}
static void
@@ -298,21 +298,21 @@ pdf_out_Tf(fz_context *ctx, pdf_processor *proc, const char *name, pdf_font_desc
{
fz_output *out = ((pdf_output_processor*)proc)->out;
if (!((pdf_output_processor*)proc)->extgstate)
- fz_printf(ctx, out, "/%s %f Tf\n", name, size);
+ fz_write_printf(ctx, out, "/%s %f Tf\n", name, size);
}
static void
pdf_out_Tr(fz_context *ctx, pdf_processor *proc, int render)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%d Tr\n", render);
+ fz_write_printf(ctx, out, "%d Tr\n", render);
}
static void
pdf_out_Ts(fz_context *ctx, pdf_processor *proc, float rise)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f Ts\n", rise);
+ fz_write_printf(ctx, out, "%f Ts\n", rise);
}
/* text positioning */
@@ -321,28 +321,28 @@ static void
pdf_out_Td(fz_context *ctx, pdf_processor *proc, float tx, float ty)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f Td\n", tx, ty);
+ fz_write_printf(ctx, out, "%f %f Td\n", tx, ty);
}
static void
pdf_out_TD(fz_context *ctx, pdf_processor *proc, float tx, float ty)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f TD\n", tx, ty);
+ fz_write_printf(ctx, out, "%f %f TD\n", tx, ty);
}
static void
pdf_out_Tm(fz_context *ctx, pdf_processor *proc, float a, float b, float c, float d, float e, float f)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f %f %f Tm\n", a, b, c, d, e, f);
+ fz_write_printf(ctx, out, "%f %f %f %f %f %f Tm\n", a, b, c, d, e, f);
}
static void
pdf_out_Tstar(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "T*\n");
+ fz_write_printf(ctx, out, "T*\n");
}
/* text showing */
@@ -358,22 +358,22 @@ put_string(fz_context *ctx, fz_output *out, const unsigned char *str, int len)
if (i < len)
{
- fz_printf(ctx, out, "<");
+ fz_write_printf(ctx, out, "<");
for (i = 0; i < len; ++i)
- fz_printf(ctx, out, "%02x", str[i]);
- fz_printf(ctx, out, ">");
+ fz_write_printf(ctx, out, "%02x", str[i]);
+ fz_write_printf(ctx, out, ">");
}
else
{
- fz_printf(ctx, out, "(");
+ fz_write_printf(ctx, out, "(");
for (i = 0; i < len; ++i)
{
unsigned char c = str[i];
if (c == '(' || c == ')' || c == '\\')
- fz_putc(ctx, out, '\\');
- fz_putc(ctx, out, c);
+ fz_write_byte(ctx, out, '\\');
+ fz_write_byte(ctx, out, c);
}
- fz_printf(ctx, out, ")");
+ fz_write_printf(ctx, out, ")");
}
}
@@ -382,7 +382,7 @@ pdf_out_TJ(fz_context *ctx, pdf_processor *proc, pdf_obj *array)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
pdf_print_obj(ctx, out, array, 1);
- fz_printf(ctx, out, " TJ\n");
+ fz_write_printf(ctx, out, " TJ\n");
}
static void
@@ -390,7 +390,7 @@ pdf_out_Tj(fz_context *ctx, pdf_processor *proc, char *str, int len)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
put_string(ctx, out, (const unsigned char *)str, len);
- fz_printf(ctx, out, " Tj\n");
+ fz_write_printf(ctx, out, " Tj\n");
}
static void
@@ -398,16 +398,16 @@ pdf_out_squote(fz_context *ctx, pdf_processor *proc, char *str, int len)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
put_string(ctx, out, (const unsigned char *)str, len);
- fz_printf(ctx, out, " '\n");
+ fz_write_printf(ctx, out, " '\n");
}
static void
pdf_out_dquote(fz_context *ctx, pdf_processor *proc, float aw, float ac, char *str, int len)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f ", aw, ac);
+ fz_write_printf(ctx, out, "%f %f ", aw, ac);
put_string(ctx, out, (const unsigned char *)str, len);
- fz_printf(ctx, out, " \"\n");
+ fz_write_printf(ctx, out, " \"\n");
}
/* type 3 fonts */
@@ -416,14 +416,14 @@ static void
pdf_out_d0(fz_context *ctx, pdf_processor *proc, float wx, float wy)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f d0\n", wx, wy);
+ fz_write_printf(ctx, out, "%f %f d0\n", wx, wy);
}
static void
pdf_out_d1(fz_context *ctx, pdf_processor *proc, float wx, float wy, float llx, float lly, float urx, float ury)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f %f %f d1\n", wx, wy, llx, lly, urx, ury);
+ fz_write_printf(ctx, out, "%f %f %f %f %f %f d1\n", wx, wy, llx, lly, urx, ury);
}
/* color */
@@ -432,14 +432,14 @@ static void
pdf_out_CS(fz_context *ctx, pdf_processor *proc, const char *name, fz_colorspace *cs)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s CS\n", name);
+ fz_write_printf(ctx, out, "/%s CS\n", name);
}
static void
pdf_out_cs(fz_context *ctx, pdf_processor *proc, const char *name, fz_colorspace *cs)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s cs\n", name);
+ fz_write_printf(ctx, out, "/%s cs\n", name);
}
static void
@@ -448,8 +448,8 @@ pdf_out_SC_pattern(fz_context *ctx, pdf_processor *proc, const char *name, pdf_p
fz_output *out = ((pdf_output_processor*)proc)->out;
int i;
for (i = 0; i < n; ++i)
- fz_printf(ctx, out, "%f ", color[i]);
- fz_printf(ctx, out, "/%s SCN\n", name);
+ fz_write_printf(ctx, out, "%f ", color[i]);
+ fz_write_printf(ctx, out, "/%s SCN\n", name);
}
static void
@@ -458,22 +458,22 @@ pdf_out_sc_pattern(fz_context *ctx, pdf_processor *proc, const char *name, pdf_p
fz_output *out = ((pdf_output_processor*)proc)->out;
int i;
for (i = 0; i < n; ++i)
- fz_printf(ctx, out, "%f ", color[i]);
- fz_printf(ctx, out, "/%s scn\n", name);
+ fz_write_printf(ctx, out, "%f ", color[i]);
+ fz_write_printf(ctx, out, "/%s scn\n", name);
}
static void
pdf_out_SC_shade(fz_context *ctx, pdf_processor *proc, const char *name, fz_shade *shade)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s SCN\n", name);
+ fz_write_printf(ctx, out, "/%s SCN\n", name);
}
static void
pdf_out_sc_shade(fz_context *ctx, pdf_processor *proc, const char *name, fz_shade *shade)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s scn\n", name);
+ fz_write_printf(ctx, out, "/%s scn\n", name);
}
static void
@@ -482,8 +482,8 @@ pdf_out_SC_color(fz_context *ctx, pdf_processor *proc, int n, float *color)
fz_output *out = ((pdf_output_processor*)proc)->out;
int i;
for (i = 0; i < n; ++i)
- fz_printf(ctx, out, "%f ", color[i]);
- fz_printf(ctx, out, "SCN\n");
+ fz_write_printf(ctx, out, "%f ", color[i]);
+ fz_write_printf(ctx, out, "SCN\n");
}
static void
@@ -492,50 +492,50 @@ pdf_out_sc_color(fz_context *ctx, pdf_processor *proc, int n, float *color)
fz_output *out = ((pdf_output_processor*)proc)->out;
int i;
for (i = 0; i < n; ++i)
- fz_printf(ctx, out, "%f ", color[i]);
- fz_printf(ctx, out, "scn\n");
+ fz_write_printf(ctx, out, "%f ", color[i]);
+ fz_write_printf(ctx, out, "scn\n");
}
static void
pdf_out_G(fz_context *ctx, pdf_processor *proc, float g)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f G\n", g);
+ fz_write_printf(ctx, out, "%f G\n", g);
}
static void
pdf_out_g(fz_context *ctx, pdf_processor *proc, float g)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f g\n", g);
+ fz_write_printf(ctx, out, "%f g\n", g);
}
static void
pdf_out_RG(fz_context *ctx, pdf_processor *proc, float r, float g, float b)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f RG\n", r, g, b);
+ fz_write_printf(ctx, out, "%f %f %f RG\n", r, g, b);
}
static void
pdf_out_rg(fz_context *ctx, pdf_processor *proc, float r, float g, float b)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f rg\n", r, g, b);
+ fz_write_printf(ctx, out, "%f %f %f rg\n", r, g, b);
}
static void
pdf_out_K(fz_context *ctx, pdf_processor *proc, float c, float m, float y, float k)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f K\n", c, m, y, k);
+ fz_write_printf(ctx, out, "%f %f %f %f K\n", c, m, y, k);
}
static void
pdf_out_k(fz_context *ctx, pdf_processor *proc, float c, float m, float y, float k)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "%f %f %f %f k\n", c, m, y, k);
+ fz_write_printf(ctx, out, "%f %f %f %f k\n", c, m, y, k);
}
/* shadings, images, xobjects */
@@ -560,30 +560,30 @@ pdf_out_BI(fz_context *ctx, pdf_processor *proc, fz_image *img)
if (buf == NULL)
return;
- fz_printf(ctx, out, "BI\n");
- fz_printf(ctx, out, "/W %d\n", img->w);
- fz_printf(ctx, out, "/H %d\n", img->h);
- fz_printf(ctx, out, "/BPC %d\n", img->bpc);
+ fz_write_printf(ctx, out, "BI\n");
+ fz_write_printf(ctx, out, "/W %d\n", img->w);
+ fz_write_printf(ctx, out, "/H %d\n", img->h);
+ fz_write_printf(ctx, out, "/BPC %d\n", img->bpc);
if (img->imagemask)
- fz_printf(ctx, out, "/IM true\n");
+ fz_write_printf(ctx, out, "/IM true\n");
else if (img->colorspace == fz_device_gray(ctx))
- fz_printf(ctx, out, "/CS/G\n");
+ fz_write_printf(ctx, out, "/CS/G\n");
else if (img->colorspace == fz_device_rgb(ctx))
- fz_printf(ctx, out, "/CS/RGB\n");
+ fz_write_printf(ctx, out, "/CS/RGB\n");
else if (img->colorspace == fz_device_cmyk(ctx))
- fz_printf(ctx, out, "/CS/CMYK\n");
+ fz_write_printf(ctx, out, "/CS/CMYK\n");
else if (fz_colorspace_is_indexed(ctx, img->colorspace))
- fz_printf(ctx, out, "/CS/I\n");
+ fz_write_printf(ctx, out, "/CS/I\n");
if (img->interpolate)
- fz_printf(ctx, out, "/I true\n");
- fz_printf(ctx, out, "/D[");
+ fz_write_printf(ctx, out, "/I true\n");
+ fz_write_printf(ctx, out, "/D[");
for (i = 0; i < img->n * 2; ++i)
{
if (i > 0)
- fz_putc(ctx, out, ' ');
- fz_printf(ctx, out, "%g", img->decode[i]);
+ fz_write_byte(ctx, out, ' ');
+ fz_write_printf(ctx, out, "%g", img->decode[i]);
}
- fz_printf(ctx, out, "]\n");
+ fz_write_printf(ctx, out, "]\n");
switch (cbuf->params.type)
{
@@ -592,78 +592,78 @@ pdf_out_BI(fz_context *ctx, pdf_processor *proc, fz_image *img)
break;
case FZ_IMAGE_JPEG:
- fz_printf(ctx, out, ahx ? "/F[/AHx/DCT]\n" : "/F/DCT\n");
+ fz_write_printf(ctx, out, ahx ? "/F[/AHx/DCT]\n" : "/F/DCT\n");
if (cbuf->params.u.jpeg.color_transform != -1)
- fz_printf(ctx, out, "/DP<</ColorTransform %d>>\n",
+ fz_write_printf(ctx, out, "/DP<</ColorTransform %d>>\n",
cbuf->params.u.jpeg.color_transform);
break;
case FZ_IMAGE_FAX:
- fz_printf(ctx, out, ahx ? "/F[/AHx/CCF]\n/DP[null<<\n" : "/F/CCF\n/DP<<\n");
- fz_printf(ctx, out, "/K %d\n", cbuf->params.u.fax.k);
+ fz_write_printf(ctx, out, ahx ? "/F[/AHx/CCF]\n/DP[null<<\n" : "/F/CCF\n/DP<<\n");
+ fz_write_printf(ctx, out, "/K %d\n", cbuf->params.u.fax.k);
if (cbuf->params.u.fax.columns != 1728)
- fz_printf(ctx, out, "/Columns %d\n", cbuf->params.u.fax.columns);
+ fz_write_printf(ctx, out, "/Columns %d\n", cbuf->params.u.fax.columns);
if (cbuf->params.u.fax.rows > 0)
- fz_printf(ctx, out, "/Rows %d\n", cbuf->params.u.fax.rows);
+ fz_write_printf(ctx, out, "/Rows %d\n", cbuf->params.u.fax.rows);
if (cbuf->params.u.fax.end_of_line)
- fz_printf(ctx, out, "/EndOfLine true\n");
+ fz_write_printf(ctx, out, "/EndOfLine true\n");
if (cbuf->params.u.fax.encoded_byte_align)
- fz_printf(ctx, out, "/EncodedByteAlign true\n");
+ fz_write_printf(ctx, out, "/EncodedByteAlign true\n");
if (!cbuf->params.u.fax.end_of_block)
- fz_printf(ctx, out, "/EndOfBlock false\n");
+ fz_write_printf(ctx, out, "/EndOfBlock false\n");
if (cbuf->params.u.fax.black_is_1)
- fz_printf(ctx, out, "/BlackIs1 true\n");
+ fz_write_printf(ctx, out, "/BlackIs1 true\n");
if (cbuf->params.u.fax.damaged_rows_before_error > 0)
- fz_printf(ctx, out, "/DamagedRowsBeforeError %d\n",
+ fz_write_printf(ctx, out, "/DamagedRowsBeforeError %d\n",
cbuf->params.u.fax.damaged_rows_before_error);
- fz_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
+ fz_write_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
break;
case FZ_IMAGE_RAW:
if (ahx)
- fz_printf(ctx, out, "/F/AHx\n");
+ fz_write_printf(ctx, out, "/F/AHx\n");
break;
case FZ_IMAGE_RLD:
- fz_printf(ctx, out, ahx ? "/F[/AHx/RL]\n" : "/F/RL\n");
+ fz_write_printf(ctx, out, ahx ? "/F[/AHx/RL]\n" : "/F/RL\n");
break;
case FZ_IMAGE_FLATE:
- fz_printf(ctx, out, ahx ? "/F[/AHx/Fl]\n" : "/F/Fl\n");
+ fz_write_printf(ctx, out, ahx ? "/F[/AHx/Fl]\n" : "/F/Fl\n");
if (cbuf->params.u.flate.predictor > 1)
{
- fz_printf(ctx, out, ahx ? "/DP[null<<\n" : "/DP<<\n");
- fz_printf(ctx, out, "/Predictor %d\n", cbuf->params.u.flate.predictor);
+ fz_write_printf(ctx, out, ahx ? "/DP[null<<\n" : "/DP<<\n");
+ fz_write_printf(ctx, out, "/Predictor %d\n", cbuf->params.u.flate.predictor);
if (cbuf->params.u.flate.columns != 1)
- fz_printf(ctx, out, "/Columns %d\n", cbuf->params.u.flate.columns);
+ fz_write_printf(ctx, out, "/Columns %d\n", cbuf->params.u.flate.columns);
if (cbuf->params.u.flate.colors != 1)
- fz_printf(ctx, out, "/Colors %d\n", cbuf->params.u.flate.colors);
+ fz_write_printf(ctx, out, "/Colors %d\n", cbuf->params.u.flate.colors);
if (cbuf->params.u.flate.bpc != 8)
- fz_printf(ctx, out, "/BitsPerComponent %d\n", cbuf->params.u.flate.bpc);
- fz_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
+ fz_write_printf(ctx, out, "/BitsPerComponent %d\n", cbuf->params.u.flate.bpc);
+ fz_write_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
}
break;
case FZ_IMAGE_LZW:
- fz_printf(ctx, out, ahx ? "/F[/AHx/LZW]\n" : "/F/LZW\n");
+ fz_write_printf(ctx, out, ahx ? "/F[/AHx/LZW]\n" : "/F/LZW\n");
if (cbuf->params.u.lzw.predictor > 1)
{
- fz_printf(ctx, out, ahx ? "/DP[<<null\n" : "/DP<<\n");
- fz_printf(ctx, out, "/Predictor %d\n", cbuf->params.u.lzw.predictor);
+ fz_write_printf(ctx, out, ahx ? "/DP[<<null\n" : "/DP<<\n");
+ fz_write_printf(ctx, out, "/Predictor %d\n", cbuf->params.u.lzw.predictor);
if (cbuf->params.u.lzw.columns != 1)
- fz_printf(ctx, out, "/Columns %d\n", cbuf->params.u.lzw.columns);
+ fz_write_printf(ctx, out, "/Columns %d\n", cbuf->params.u.lzw.columns);
if (cbuf->params.u.lzw.colors != 1)
- fz_printf(ctx, out, "/Colors %d\n", cbuf->params.u.lzw.colors);
+ fz_write_printf(ctx, out, "/Colors %d\n", cbuf->params.u.lzw.colors);
if (cbuf->params.u.lzw.bpc != 8)
- fz_printf(ctx, out, "/BitsPerComponent %d\n", cbuf->params.u.lzw.bpc);
+ fz_write_printf(ctx, out, "/BitsPerComponent %d\n", cbuf->params.u.lzw.bpc);
if (cbuf->params.u.lzw.early_change != 1)
- fz_printf(ctx, out, "/EarlyChange %d\n", cbuf->params.u.lzw.early_change);
- fz_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
+ fz_write_printf(ctx, out, "/EarlyChange %d\n", cbuf->params.u.lzw.early_change);
+ fz_write_printf(ctx, out, ahx ? ">>]\n" : ">>\n");
}
break;
}
- fz_printf(ctx, out, "ID\n");
+ fz_write_printf(ctx, out, "ID\n");
len = fz_buffer_storage(ctx, buf, &data);
if (ahx)
{
@@ -671,39 +671,39 @@ pdf_out_BI(fz_context *ctx, pdf_processor *proc, fz_image *img)
for (z = 0; z < len; ++z)
{
int c = data[z];
- fz_putc(ctx, out, "0123456789abcdef"[(c >> 4) & 0xf]);
- fz_putc(ctx, out, "0123456789abcdef"[c & 0xf]);
+ fz_write_byte(ctx, out, "0123456789abcdef"[(c >> 4) & 0xf]);
+ fz_write_byte(ctx, out, "0123456789abcdef"[c & 0xf]);
if ((z & 31) == 31)
- fz_putc(ctx, out, '\n');
+ fz_write_byte(ctx, out, '\n');
}
- fz_putc(ctx, out, '>');
+ fz_write_byte(ctx, out, '>');
}
else
{
- fz_write(ctx, out, data, len);
+ fz_write_data(ctx, out, data, len);
}
- fz_printf(ctx, out, "\nEI\n");
+ fz_write_printf(ctx, out, "\nEI\n");
}
static void
pdf_out_sh(fz_context *ctx, pdf_processor *proc, const char *name, fz_shade *shade)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s sh\n", name);
+ fz_write_printf(ctx, out, "/%s sh\n", name);
}
static void
pdf_out_Do_image(fz_context *ctx, pdf_processor *proc, const char *name, fz_image *image)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s Do\n", name);
+ fz_write_printf(ctx, out, "/%s Do\n", name);
}
static void
pdf_out_Do_form(fz_context *ctx, pdf_processor *proc, const char *name, pdf_xobject *xobj, pdf_obj *page_resources)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s Do\n", name);
+ fz_write_printf(ctx, out, "/%s Do\n", name);
}
/* marked content */
@@ -712,39 +712,39 @@ static void
pdf_out_MP(fz_context *ctx, pdf_processor *proc, const char *tag)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s MP\n", tag);
+ fz_write_printf(ctx, out, "/%s MP\n", tag);
}
static void
pdf_out_DP(fz_context *ctx, pdf_processor *proc, const char *tag, pdf_obj *raw, pdf_obj *cooked)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s ", tag);
+ fz_write_printf(ctx, out, "/%s ", tag);
pdf_print_obj(ctx, out, raw, 1);
- fz_printf(ctx, out, " DP\n");
+ fz_write_printf(ctx, out, " DP\n");
}
static void
pdf_out_BMC(fz_context *ctx, pdf_processor *proc, const char *tag)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s BMC\n", tag);
+ fz_write_printf(ctx, out, "/%s BMC\n", tag);
}
static void
pdf_out_BDC(fz_context *ctx, pdf_processor *proc, const char *tag, pdf_obj *raw, pdf_obj *cooked)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "/%s ", tag);
+ fz_write_printf(ctx, out, "/%s ", tag);
pdf_print_obj(ctx, out, raw, 1);
- fz_printf(ctx, out, " BDC\n");
+ fz_write_printf(ctx, out, " BDC\n");
}
static void
pdf_out_EMC(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "EMC\n");
+ fz_write_printf(ctx, out, "EMC\n");
}
/* compatibility */
@@ -753,14 +753,14 @@ static void
pdf_out_BX(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "BX\n");
+ fz_write_printf(ctx, out, "BX\n");
}
static void
pdf_out_EX(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
- fz_printf(ctx, out, "EX\n");
+ fz_write_printf(ctx, out, "EX\n");
}
static void
diff --git a/source/pdf/pdf-pkcs7.c b/source/pdf/pdf-pkcs7.c
index ae5b75fa..dd106034 100644
--- a/source/pdf/pdf-pkcs7.c
+++ b/source/pdf/pdf-pkcs7.c
@@ -731,19 +731,19 @@ void pdf_sign_signature(fz_context *ctx, pdf_document *doc, pdf_widget *widget,
if (!dn->cn)
fz_throw(ctx, FZ_ERROR_GENERIC, "Certificate has no common name");
- fz_buffer_printf(ctx, fzbuf, "cn=%s", dn->cn);
+ fz_append_printf(ctx, fzbuf, "cn=%s", dn->cn);
if (dn->o)
- fz_buffer_printf(ctx, fzbuf, ", o=%s", dn->o);
+ fz_append_printf(ctx, fzbuf, ", o=%s", dn->o);
if (dn->ou)
- fz_buffer_printf(ctx, fzbuf, ", ou=%s", dn->ou);
+ fz_append_printf(ctx, fzbuf, ", ou=%s", dn->ou);
if (dn->email)
- fz_buffer_printf(ctx, fzbuf, ", email=%s", dn->email);
+ fz_append_printf(ctx, fzbuf, ", email=%s", dn->email);
if (dn->c)
- fz_buffer_printf(ctx, fzbuf, ", c=%s", dn->c);
+ fz_append_printf(ctx, fzbuf, ", c=%s", dn->c);
dn_str = fz_string_from_buffer(ctx, fzbuf);
pdf_set_signature_appearance(ctx, doc, (pdf_annot *)widget, dn->cn, dn_str, NULL);
diff --git a/source/pdf/pdf-store.c b/source/pdf/pdf-store.c
index 33d34ab9..e29e7ccb 100644
--- a/source/pdf/pdf-store.c
+++ b/source/pdf/pdf-store.c
@@ -36,7 +36,7 @@ pdf_print_key(fz_context *ctx, fz_output *out, void *key_)
pdf_obj *key = (pdf_obj *)key_;
if (pdf_is_indirect(ctx, key))
- fz_printf(ctx, out, "(%d 0 R) ", pdf_to_num(ctx, key));
+ fz_write_printf(ctx, out, "(%d 0 R) ", pdf_to_num(ctx, key));
else
pdf_print_obj(ctx, out, key, 0);
}
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c
index 7602e0c9..d0ff2f76 100644
--- a/source/pdf/pdf-write.c
+++ b/source/pdf/pdf-write.c
@@ -1674,13 +1674,13 @@ static void copystream(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
pdf_dict_put(ctx, obj, PDF_NAME_Length, newlen);
pdf_drop_obj(ctx, newlen);
- fz_printf(ctx, opts->out, "%d %d obj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\n", num, gen);
pdf_print_obj(ctx, opts->out, obj, opts->do_tight);
- fz_puts(ctx, opts->out, "\nstream\n");
- fz_write(ctx, opts->out, data, len);
+ fz_write_string(ctx, opts->out, "\nstream\n");
+ fz_write_data(ctx, opts->out, data, len);
if (len > 0 && data[len-1] != '\n')
- fz_putc(ctx, opts->out, '\n');
- fz_puts(ctx, opts->out, "endstream\nendobj\n\n");
+ fz_write_byte(ctx, opts->out, '\n');
+ fz_write_string(ctx, opts->out, "endstream\nendobj\n\n");
fz_drop_buffer(ctx, buf);
pdf_drop_obj(ctx, obj);
@@ -1739,13 +1739,13 @@ static void expandstream(fz_context *ctx, pdf_document *doc, pdf_write_state *op
pdf_dict_put(ctx, obj, PDF_NAME_Length, newlen);
pdf_drop_obj(ctx, newlen);
- fz_printf(ctx, opts->out, "%d %d obj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\n", num, gen);
pdf_print_obj(ctx, opts->out, obj, opts->do_tight);
- fz_puts(ctx, opts->out, "\nstream\n");
- fz_write(ctx, opts->out, data, len);
+ fz_write_string(ctx, opts->out, "\nstream\n");
+ fz_write_data(ctx, opts->out, data, len);
if (len > 0 && data[len-1] != '\n')
- fz_putc(ctx, opts->out, '\n');
- fz_puts(ctx, opts->out, "endstream\nendobj\n\n");
+ fz_write_byte(ctx, opts->out, '\n');
+ fz_write_string(ctx, opts->out, "endstream\nendobj\n\n");
fz_drop_buffer(ctx, buf);
pdf_drop_obj(ctx, obj);
@@ -1827,7 +1827,7 @@ static void writeobject(fz_context *ctx, pdf_document *doc, pdf_write_state *opt
fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
if (opts->continue_on_error)
{
- fz_printf(ctx, opts->out, "%d %d obj\nnull\nendobj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\nnull\nendobj\n", num, gen);
if (opts->errors)
(*opts->errors)++;
fz_warn(ctx, "%s", fz_caught_message(ctx));
@@ -1858,15 +1858,15 @@ static void writeobject(fz_context *ctx, pdf_document *doc, pdf_write_state *opt
entry = pdf_get_xref_entry(ctx, doc, num);
if (!pdf_obj_num_is_stream(ctx, doc, num))
{
- fz_printf(ctx, opts->out, "%d %d obj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\n", num, gen);
pdf_print_obj(ctx, opts->out, obj, opts->do_tight);
- fz_puts(ctx, opts->out, "\nendobj\n\n");
+ fz_write_string(ctx, opts->out, "\nendobj\n\n");
}
else if (entry->stm_ofs < 0 && entry->stm_buf == NULL)
{
- fz_printf(ctx, opts->out, "%d %d obj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\n", num, gen);
pdf_print_obj(ctx, opts->out, obj, opts->do_tight);
- fz_puts(ctx, opts->out, "\nstream\nendstream\nendobj\n\n");
+ fz_write_string(ctx, opts->out, "\nstream\nendstream\nendobj\n\n");
}
else
{
@@ -1888,7 +1888,7 @@ static void writeobject(fz_context *ctx, pdf_document *doc, pdf_write_state *opt
fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
if (opts->continue_on_error)
{
- fz_printf(ctx, opts->out, "%d %d obj\nnull\nendobj\n", num, gen);
+ fz_write_printf(ctx, opts->out, "%d %d obj\nnull\nendobj\n", num, gen);
if (opts->errors)
(*opts->errors)++;
fz_warn(ctx, "%s", fz_caught_message(ctx));
@@ -1908,13 +1908,13 @@ static void writexrefsubsect(fz_context *ctx, pdf_write_state *opts, int from, i
{
int num;
- fz_printf(ctx, opts->out, "%d %d\n", from, to - from);
+ fz_write_printf(ctx, opts->out, "%d %d\n", from, to - from);
for (num = from; num < to; num++)
{
if (opts->use_list[num])
- fz_printf(ctx, opts->out, "%010Zd %05d n \n", opts->ofs_list[num], opts->gen_list[num]);
+ fz_write_printf(ctx, opts->out, "%010Zd %05d n \n", opts->ofs_list[num], opts->gen_list[num]);
else
- fz_printf(ctx, opts->out, "%010Zd %05d f \n", opts->ofs_list[num], opts->gen_list[num]);
+ fz_write_printf(ctx, opts->out, "%010Zd %05d f \n", opts->ofs_list[num], opts->gen_list[num]);
}
}
@@ -1924,7 +1924,7 @@ static void writexref(fz_context *ctx, pdf_document *doc, pdf_write_state *opts,
pdf_obj *obj;
pdf_obj *nobj = NULL;
- fz_puts(ctx, opts->out, "xref\n");
+ fz_write_string(ctx, opts->out, "xref\n");
opts->first_xref_entry_offset = fz_tell_output(ctx, opts->out);
if (opts->do_incremental)
@@ -1952,7 +1952,7 @@ static void writexref(fz_context *ctx, pdf_document *doc, pdf_write_state *opts,
writexrefsubsect(ctx, opts, from, to);
}
- fz_puts(ctx, opts->out, "\n");
+ fz_write_string(ctx, opts->out, "\n");
fz_var(trailer);
fz_var(nobj);
@@ -2007,13 +2007,13 @@ static void writexref(fz_context *ctx, pdf_document *doc, pdf_write_state *opts,
fz_rethrow(ctx);
}
- fz_puts(ctx, opts->out, "trailer\n");
+ fz_write_string(ctx, opts->out, "trailer\n");
pdf_print_obj(ctx, opts->out, trailer, opts->do_tight);
- fz_puts(ctx, opts->out, "\n");
+ fz_write_string(ctx, opts->out, "\n");
pdf_drop_obj(ctx, trailer);
- fz_printf(ctx, opts->out, "startxref\n%d\n%%%%EOF\n", startxref);
+ fz_write_printf(ctx, opts->out, "startxref\n%d\n%%%%EOF\n", startxref);
doc->has_xref_streams = 0;
}
@@ -2026,12 +2026,12 @@ static void writexrefstreamsubsect(fz_context *ctx, pdf_document *doc, pdf_write
pdf_array_push_drop(ctx, index, pdf_new_int(ctx, doc, to - from));
for (num = from; num < to; num++)
{
- fz_write_buffer_byte(ctx, fzbuf, opts->use_list[num] ? 1 : 0);
- fz_write_buffer_byte(ctx, fzbuf, opts->ofs_list[num]>>24);
- fz_write_buffer_byte(ctx, fzbuf, opts->ofs_list[num]>>16);
- fz_write_buffer_byte(ctx, fzbuf, opts->ofs_list[num]>>8);
- fz_write_buffer_byte(ctx, fzbuf, opts->ofs_list[num]);
- fz_write_buffer_byte(ctx, fzbuf, opts->gen_list[num]);
+ fz_append_byte(ctx, fzbuf, opts->use_list[num] ? 1 : 0);
+ fz_append_byte(ctx, fzbuf, opts->ofs_list[num]>>24);
+ fz_append_byte(ctx, fzbuf, opts->ofs_list[num]>>16);
+ fz_append_byte(ctx, fzbuf, opts->ofs_list[num]>>8);
+ fz_append_byte(ctx, fzbuf, opts->ofs_list[num]);
+ fz_append_byte(ctx, fzbuf, opts->gen_list[num]);
}
}
@@ -2137,7 +2137,7 @@ static void writexrefstream(fz_context *ctx, pdf_document *doc, pdf_write_state
pdf_update_stream(ctx, doc, dict, fzbuf, 0);
writeobject(ctx, doc, opts, num, 0, 0);
- fz_printf(ctx, opts->out, "startxref\n%Zd\n%%%%EOF\n", startxref);
+ fz_write_printf(ctx, opts->out, "startxref\n%Zd\n%%%%EOF\n", startxref);
}
fz_always(ctx)
{
@@ -2159,7 +2159,7 @@ padto(fz_context *ctx, fz_output *out, fz_off_t target)
assert(pos <= target);
while (pos < target)
{
- fz_putc(ctx, out, '\n');
+ fz_write_byte(ctx, out, '\n');
pos++;
}
}
@@ -2208,8 +2208,8 @@ writeobjects(fz_context *ctx, pdf_document *doc, pdf_write_state *opts, int pass
if (!opts->do_incremental)
{
- fz_printf(ctx, opts->out, "%%PDF-%d.%d\n", doc->version / 10, doc->version % 10);
- fz_puts(ctx, opts->out, "%%\316\274\341\277\246\n\n");
+ fz_write_printf(ctx, opts->out, "%%PDF-%d.%d\n", doc->version / 10, doc->version % 10);
+ fz_write_string(ctx, opts->out, "%%\316\274\341\277\246\n\n");
}
dowriteobject(ctx, doc, opts, opts->start, pass);
@@ -2362,69 +2362,69 @@ make_page_offset_hints(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
/* Table F.3 - Header */
/* Header Item 1: Least number of objects in a page */
- fz_write_buffer_bits(ctx, buf, min_objs_per_page, 32);
+ fz_append_bits(ctx, buf, min_objs_per_page, 32);
/* Header Item 2: Location of first pages page object */
- fz_write_buffer_bits(ctx, buf, opts->ofs_list[pop[0]->page_object_number], 32);
+ fz_append_bits(ctx, buf, opts->ofs_list[pop[0]->page_object_number], 32);
/* Header Item 3: Number of bits required to represent the difference
* between the greatest and least number of objects in a page. */
objs_per_page_bits = my_log2(max_objs_per_page - min_objs_per_page);
- fz_write_buffer_bits(ctx, buf, objs_per_page_bits, 16);
+ fz_append_bits(ctx, buf, objs_per_page_bits, 16);
/* Header Item 4: Least length of a page. */
- fz_write_buffer_bits(ctx, buf, min_page_length, 32);
+ fz_append_bits(ctx, buf, min_page_length, 32);
/* Header Item 5: Number of bits needed to represent the difference
* between the greatest and least length of a page. */
page_len_bits = my_log2(max_page_length - min_page_length);
- fz_write_buffer_bits(ctx, buf, page_len_bits, 16);
+ fz_append_bits(ctx, buf, page_len_bits, 16);
/* Header Item 6: Least offset to start of content stream (Acrobat
* sets this to always be 0) */
- fz_write_buffer_bits(ctx, buf, 0, 32);
+ fz_append_bits(ctx, buf, 0, 32);
/* Header Item 7: Number of bits needed to represent the difference
* between the greatest and least offset to content stream (Acrobat
* sets this to always be 0) */
- fz_write_buffer_bits(ctx, buf, 0, 16);
+ fz_append_bits(ctx, buf, 0, 16);
/* Header Item 8: Least content stream length. (Acrobat
* sets this to always be 0) */
- fz_write_buffer_bits(ctx, buf, 0, 32);
+ fz_append_bits(ctx, buf, 0, 32);
/* Header Item 9: Number of bits needed to represent the difference
* between the greatest and least content stream length (Acrobat
* sets this to always be the same as item 5) */
- fz_write_buffer_bits(ctx, buf, page_len_bits, 16);
+ fz_append_bits(ctx, buf, page_len_bits, 16);
/* Header Item 10: Number of bits needed to represent the greatest
* number of shared object references. */
shared_object_bits = my_log2(max_shared_object_refs);
- fz_write_buffer_bits(ctx, buf, shared_object_bits, 16);
+ fz_append_bits(ctx, buf, shared_object_bits, 16);
/* Header Item 11: Number of bits needed to represent the greatest
* shared object identifier. */
shared_object_id_bits = my_log2(max_shared_object - min_shared_object + pop[0]->num_shared);
- fz_write_buffer_bits(ctx, buf, shared_object_id_bits, 16);
+ fz_append_bits(ctx, buf, shared_object_id_bits, 16);
/* Header Item 12: Number of bits needed to represent the numerator
* of the fractions. We always send 0. */
- fz_write_buffer_bits(ctx, buf, 0, 16);
+ fz_append_bits(ctx, buf, 0, 16);
/* Header Item 13: Number of bits needed to represent the denominator
* of the fractions. We always send 0. */
- fz_write_buffer_bits(ctx, buf, 0, 16);
+ fz_append_bits(ctx, buf, 0, 16);
/* Table F.4 - Page offset hint table (per page) */
/* Item 1: A number that, when added to the least number of objects
* on a page, gives the number of objects in the page. */
for (i = 0; i < opts->page_count; i++)
{
- fz_write_buffer_bits(ctx, buf, pop[i]->num_objects - min_objs_per_page, objs_per_page_bits);
+ fz_append_bits(ctx, buf, pop[i]->num_objects - min_objs_per_page, objs_per_page_bits);
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 2: A number that, when added to the least page length, gives
* the length of the page in bytes. */
for (i = 0; i < opts->page_count; i++)
{
- fz_write_buffer_bits(ctx, buf, pop[i]->max_ofs - pop[i]->min_ofs - min_page_length, page_len_bits);
+ fz_append_bits(ctx, buf, pop[i]->max_ofs - pop[i]->min_ofs - min_page_length, page_len_bits);
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 3: The number of shared objects referenced from the page. */
for (i = 0; i < opts->page_count; i++)
{
- fz_write_buffer_bits(ctx, buf, pop[i]->num_shared, shared_object_bits);
+ fz_append_bits(ctx, buf, pop[i]->num_shared, shared_object_bits);
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 4: Shared object id for each shared object ref in every page.
* Spec says "not for page 1", but acrobat does send page 1's - all
* as zeros. */
@@ -2434,12 +2434,12 @@ make_page_offset_hints(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
{
int o = pop[i]->object[j];
if (i == 0 && opts->use_list[o] & USE_PAGE1)
- fz_write_buffer_bits(ctx, buf, 0 /* o - pop[0]->page_object_number */, shared_object_id_bits);
+ fz_append_bits(ctx, buf, 0 /* o - pop[0]->page_object_number */, shared_object_id_bits);
if (i != 0 && opts->use_list[o] & USE_SHARED)
- fz_write_buffer_bits(ctx, buf, o - min_shared_object + pop[0]->num_shared, shared_object_id_bits);
+ fz_append_bits(ctx, buf, o - min_shared_object + pop[0]->num_shared, shared_object_id_bits);
}
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 5: Numerator of fractional position for each shared object reference. */
/* We always send 0 in 0 bits */
/* Item 6: A number that, when added to the least offset to the start
@@ -2453,36 +2453,36 @@ make_page_offset_hints(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
*/
for (i = 0; i < opts->page_count; i++)
{
- fz_write_buffer_bits(ctx, buf, pop[i]->max_ofs - pop[i]->min_ofs - min_page_length, page_len_bits);
+ fz_append_bits(ctx, buf, pop[i]->max_ofs - pop[i]->min_ofs - min_page_length, page_len_bits);
}
/* Pad, and then do shared object hint table */
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
opts->hints_shared_offset = (int)fz_buffer_storage(ctx, buf, NULL);
/* Table F.5: */
/* Header Item 1: Object number of the first object in the shared
* objects section. */
- fz_write_buffer_bits(ctx, buf, min_shared_object, 32);
+ fz_append_bits(ctx, buf, min_shared_object, 32);
/* Header Item 2: Location of first object in the shared objects
* section. */
- fz_write_buffer_bits(ctx, buf, opts->ofs_list[min_shared_object], 32);
+ fz_append_bits(ctx, buf, opts->ofs_list[min_shared_object], 32);
/* Header Item 3: The number of shared object entries for the first
* page. */
- fz_write_buffer_bits(ctx, buf, pop[0]->num_shared, 32);
+ fz_append_bits(ctx, buf, pop[0]->num_shared, 32);
/* Header Item 4: The number of shared object entries for the shared
* objects section + first page. */
- fz_write_buffer_bits(ctx, buf, max_shared_object - min_shared_object + pop[0]->num_shared, 32);
+ fz_append_bits(ctx, buf, max_shared_object - min_shared_object + pop[0]->num_shared, 32);
/* Header Item 5: The number of bits needed to represent the greatest
* number of objects in a shared object group (Always 0). */
- fz_write_buffer_bits(ctx, buf, 0, 16);
+ fz_append_bits(ctx, buf, 0, 16);
/* Header Item 6: The least length of a shared object group in bytes. */
- fz_write_buffer_bits(ctx, buf, min_shared_length, 32);
+ fz_append_bits(ctx, buf, min_shared_length, 32);
/* Header Item 7: The number of bits required to represent the
* difference between the greatest and least length of a shared object
* group. */
shared_length_bits = my_log2(max_shared_length - min_shared_length);
- fz_write_buffer_bits(ctx, buf, shared_length_bits, 16);
+ fz_append_bits(ctx, buf, shared_length_bits, 16);
/* Table F.6 */
/* Item 1: Shared object group length (page 1 objects) */
@@ -2498,7 +2498,7 @@ make_page_offset_hints(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
else
max = opts->ofs_list[1];
if (opts->use_list[o] & USE_PAGE1)
- fz_write_buffer_bits(ctx, buf, max - min - min_shared_length, shared_length_bits);
+ fz_append_bits(ctx, buf, max - min - min_shared_length, shared_length_bits);
}
/* Item 1: Shared object group length (shared objects) */
for (i = min_shared_object; i <= max_shared_object; i++)
@@ -2511,18 +2511,18 @@ make_page_offset_hints(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
max = opts->ofs_list[i+1];
else
max = opts->ofs_list[1];
- fz_write_buffer_bits(ctx, buf, max - min - min_shared_length, shared_length_bits);
+ fz_append_bits(ctx, buf, max - min - min_shared_length, shared_length_bits);
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 2: MD5 presence flags */
for (i = max_shared_object - min_shared_object + pop[0]->num_shared; i > 0; i--)
{
- fz_write_buffer_bits(ctx, buf, 0, 1);
+ fz_append_bits(ctx, buf, 0, 1);
}
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 3: MD5 sums (not present) */
- fz_write_buffer_pad(ctx, buf);
+ fz_append_bits_pad(ctx, buf);
/* Item 4: Number of objects in the group (not present) */
}
@@ -2860,7 +2860,7 @@ do_pdf_save_document(fz_context *ctx, pdf_document *doc, pdf_write_state *opts,
if (opts->out)
{
fz_seek_output(ctx, opts->out, 0, SEEK_END);
- fz_puts(ctx, opts->out, "\n");
+ fz_write_string(ctx, opts->out, "\n");
}
}