From 73973b7ea26082269ecb8c371beb7206fe6c602a Mon Sep 17 00:00:00 2001 From: sam-shubham Date: Thu, 19 Mar 2026 11:25:48 +0530 Subject: [PATCH 1/3] fix: handle missing width array in getPageFonts function --- source/pdf/pdf-text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/pdf/pdf-text.c b/source/pdf/pdf-text.c index bee4e6f..733785b 100644 --- a/source/pdf/pdf-text.c +++ b/source/pdf/pdf-text.c @@ -1231,7 +1231,7 @@ getPageFonts(p2c_device_t *dev) // I - PDF2Cairo Conversion document dev->fonts[cur_font]->last_char = (int)pdfioDictGetNumber(ref_font_dict, "LastChar"); pdfio_obj_t *width_object = pdfioDictGetObj(ref_font_dict, "Widths"); pdfio_array_t *width_array = pdfioObjGetArray(width_object); - if(width_array) + if(!width_array) { fprintf(stderr, "No Width Array"); return false; From d5f7702f4b2cc503267a6a2e94467f357c034af8 Mon Sep 17 00:00:00 2001 From: sam-shubham Date: Thu, 19 Mar 2026 16:19:30 +0530 Subject: [PATCH 2/3] Add JPEG XObject rendering support --- .gitignore | 5 + source/cairo/cairo-device-private.h | 6 + source/cairo/cairo-device.c | 227 +++++++++++++++++++++++++ source/pdf/parser.c | 126 +++++++++++++- testfiles/input/xobject/two-images.pdf | Bin 0 -> 67060 bytes 5 files changed, 357 insertions(+), 7 deletions(-) create mode 100644 testfiles/input/xobject/two-images.pdf diff --git a/.gitignore b/.gitignore index 24bdea7..758e24a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,8 @@ testfiles/renderer-output/ testfiles/testpdfio testfiles/test-codes/ source/tools/pdf2cairo/pdf2cairo + +out.png +out.jpg +debug.jpg +debug.png \ No newline at end of file diff --git a/source/cairo/cairo-device-private.h b/source/cairo/cairo-device-private.h index 7841a1e..b505981 100644 --- a/source/cairo/cairo-device-private.h +++ b/source/cairo/cairo-device-private.h @@ -67,4 +67,10 @@ void device_show_text(p2c_device_t *dev, const char *str); void device_show_text_kerning(p2c_device_t *dev, operand_t *operands, int num_operands); void device_set_text_rendering_mode(p2c_device_t *dev, int mode); void device_get_current_point(p2c_device_t *dev, double *x, double *y); + +// --- Image/XObject Rendering --- +void device_draw_image(p2c_device_t *dev, pdfio_obj_t *xobj); + + + #endif // CAIRO_DEVICE_PRIVATE_H diff --git a/source/cairo/cairo-device.c b/source/cairo/cairo-device.c index 54aaabd..e962e87 100644 --- a/source/cairo/cairo-device.c +++ b/source/cairo/cairo-device.c @@ -7,6 +7,121 @@ // #include "cairo-private.h" +#include +#include + +typedef struct p2c_jpeg_error_s +{ + struct jpeg_error_mgr pub; + jmp_buf jmp; +} p2c_jpeg_error_t; + +static cairo_user_data_key_t p2c_surface_data_key; + +static void +p2c_jpeg_error_exit(j_common_ptr cinfo) +{ + p2c_jpeg_error_t *error = (p2c_jpeg_error_t *)cinfo->err; + + (*cinfo->err->output_message)(cinfo); + longjmp(error->jmp, 1); +} + +static cairo_surface_t * +decode_jpeg_surface(const unsigned char *data, size_t length) +{ + struct jpeg_decompress_struct cinfo; + p2c_jpeg_error_t jerr; + cairo_surface_t *surface = NULL; + unsigned char *surface_data = NULL; + JSAMPLE *buffer = NULL; + int stride; + int width, height, components; + + cinfo.err = jpeg_std_error(&jerr.pub); + jerr.pub.error_exit = p2c_jpeg_error_exit; + + if (setjmp(jerr.jmp)) + { + jpeg_destroy_decompress(&cinfo); + free(buffer); + free(surface_data); + return (NULL); + } + + jpeg_create_decompress(&cinfo); + jpeg_mem_src(&cinfo, (unsigned char *)data, length); + jpeg_read_header(&cinfo, TRUE); + jpeg_start_decompress(&cinfo); + + width = (int)cinfo.output_width; + height = (int)cinfo.output_height; + components = cinfo.output_components; + stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, width); + + surface_data = calloc((size_t)stride, cinfo.output_height); + buffer = malloc((size_t)cinfo.output_width * cinfo.output_components); + if (!surface_data) + { + jpeg_destroy_decompress(&cinfo); + return (NULL); + } + else if (!buffer) + { + jpeg_destroy_decompress(&cinfo); + free(surface_data); + return (NULL); + } + + while (cinfo.output_scanline < cinfo.output_height) + { + JSAMPROW row = surface_data + (size_t)stride * cinfo.output_scanline; + JSAMPROW src = buffer; + + jpeg_read_scanlines(&cinfo, &src, 1); + + for (JDIMENSION x = 0; x < cinfo.output_width; x ++) + { + unsigned char *dst = row + x * 4; + + if (components == 3) + { + dst[0] = buffer[x * 3 + 2]; + dst[1] = buffer[x * 3 + 1]; + dst[2] = buffer[x * 3 + 0]; + } + else if (components == 1) + { + dst[0] = buffer[x]; + dst[1] = buffer[x]; + dst[2] = buffer[x]; + } + + dst[3] = 255; + } + } + + jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + free(buffer); + + surface = cairo_image_surface_create_for_data(surface_data, + CAIRO_FORMAT_RGB24, + width, + height, + stride); + if (cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS) + { + free(surface_data); + cairo_surface_destroy(surface); + return (NULL); + } + + cairo_surface_set_user_data(surface, &p2c_surface_data_key, surface_data, free); + cairo_surface_mark_dirty(surface); + + return (surface); +} // --- Device LifeCycle Functions --- @@ -90,6 +205,118 @@ device_create(pdfrip_page_t *page, // I - Data related to PDF page return (dev); } +#include +#include + +void device_draw_image(p2c_device_t *dev, pdfio_obj_t *xobj) +{ + pdfio_dict_t *dict = pdfioObjGetDict(xobj); + pdfio_stream_t *stream; + unsigned char *data = NULL; + size_t length = 0, capacity = 0; + + int width = (int)pdfioDictGetNumber(dict, "Width"); + int height = (int)pdfioDictGetNumber(dict, "Height"); + int bpc = (int)pdfioDictGetNumber(dict, "BitsPerComponent"); + + const char *colorspace = pdfioDictGetName(dict, "ColorSpace"); + const char *filter = pdfioDictGetName(dict, "Filter"); + + fprintf(stderr, "DEBUG: Image %dx%d, bpc=%d, cs=%s, filter=%s\n", + width, height, bpc, colorspace ? colorspace : "NULL", + filter ? filter : "NONE"); + + stream = pdfioObjOpenStream(xobj, !(filter && !strcmp(filter, "DCTDecode"))); + if (!stream) + { + fprintf(stderr, "ERROR: Cannot open image stream\n"); + return; + } + + for (;;) + { + unsigned char buffer[8192]; + ssize_t bytes = pdfioStreamRead(stream, buffer, sizeof(buffer)); + + if (bytes < 0) + { + fprintf(stderr, "ERROR: Cannot read image stream\n"); + free(data); + pdfioStreamClose(stream); + return; + } + + if (bytes == 0) + break; + + if (length + (size_t)bytes > capacity) + { + size_t new_capacity = capacity ? capacity * 2 : 8192; + unsigned char *temp; + + while (new_capacity < length + (size_t)bytes) + new_capacity *= 2; + + temp = realloc(data, new_capacity); + if (!temp) + { + fprintf(stderr, "ERROR: Out of memory reading image stream\n"); + free(data); + pdfioStreamClose(stream); + return; + } + + data = temp; + capacity = new_capacity; + } + + memcpy(data + length, buffer, (size_t)bytes); + length += (size_t)bytes; + } + + pdfioStreamClose(stream); + + fprintf(stderr, "DEBUG: Got %zu bytes\n", length); + + // Temporary debug path for raw JPEG image data. + if (filter && !strcmp(filter, "DCTDecode")) + { + cairo_surface_t *image; + FILE *f = fopen("debug.jpg", "wb"); + if (f) + { + fwrite(data, 1, length, f); + fclose(f); + fprintf(stderr, "DEBUG: Saved image as debug.jpg\n"); + } + + image = decode_jpeg_surface(data, length); + if (!image) + { + fprintf(stderr, "ERROR: Unable to decode JPEG image\n"); + free(data); + return; + } + + cairo_save(dev->cr); + cairo_translate(dev->cr, 0.0, 1.0); + cairo_scale(dev->cr, 1.0, -1.0); + cairo_scale(dev->cr, 1.0 / width, 1.0 / height); + cairo_set_source_surface(dev->cr, image, 0.0, 0.0); + cairo_pattern_set_filter(cairo_get_source(dev->cr), CAIRO_FILTER_BEST); + cairo_rectangle(dev->cr, 0.0, 0.0, width, height); + cairo_fill(dev->cr); + cairo_restore(dev->cr); + + cairo_surface_destroy(image); + free(data); + return; + } + + fprintf(stderr, "WARNING: Unsupported image format\n"); + free(data); +} + // // 'device_destroy()' - frees all allocated resources // diff --git a/source/pdf/parser.c b/source/pdf/parser.c index d9a0d04..a499058 100644 --- a/source/pdf/parser.c +++ b/source/pdf/parser.c @@ -575,6 +575,70 @@ handle_Tr(p2c_device_t *dev, } } +void process_form_xobject(p2c_device_t *dev, pdfio_obj_t *xobj) +{ + pdfio_dict_t *dict = pdfioObjGetDict(xobj); + + pdfio_stream_t *st = pdfioObjOpenStream(xobj, true); + + pdfrip_page_t fake_page = { + .object = xobj, + .resources_dict = pdfioDictGetDict(dict, "Resources"), + .num_streams = 1 + }; + + process_content_stream(dev, &fake_page); + + pdfioStreamClose(st); +} + +static void +handle_Do(p2c_device_t *dev, pdfio_dict_t *resources) +{ + if (operand_stack_ptr == 1 && + operand_stack[0].type == OP_TYPE_NAME) + { + const char *name = operand_stack[0].value.name + 1; + + if (g_verbose) + fprintf(stderr, "DEBUG: Operator Do (XObject): %s\n", name); + + pdfio_dict_t *xobject_dict = pdfioDictGetDict(resources, "XObject"); + if (!xobject_dict) + { + fprintf(stderr, "ERROR: No XObject dictionary\n"); + return; + } + + pdfio_obj_t *xobj = pdfioDictGetObj(xobject_dict, name); + if (!xobj) + { + fprintf(stderr, "ERROR: XObject %s not found\n", name); + return; + } + + pdfio_dict_t *dict = pdfioObjGetDict(xobj); + const char *subtype = pdfioDictGetName(dict, "Subtype"); + + if (!subtype) + { + fprintf(stderr, "ERROR: Missing subtype\n"); + return; + } + + if (!strcmp(subtype, "Image")) + { + fprintf(stderr, "DEBUG: Rendering Image XObject\n"); + device_draw_image(dev, xobj); + } + else if (!strcmp(subtype, "Form")) + { + fprintf(stderr, "DEBUG: Rendering Form XObject\n"); + process_form_xobject(dev, xobj); + } + } +} + // --- Dispatch Table and Logic --- // type for our handler functions @@ -595,6 +659,7 @@ static const pdf_operator_t operator_table[] = {"B*", handle_B_star}, {"BT", handle_BT}, {"CS", handle_CS}, + {"Do", handle_Do}, {"ET", handle_ET}, {"G", handle_G}, {"K", handle_K}, @@ -645,6 +710,29 @@ compare_operators(const void *a, return strcmp(token, op->name); } +static pdfio_stream_t * +reopen_page_stream_at_token(pdfio_obj_t *page, size_t stream_index, size_t token_count) +{ + pdfio_stream_t *st = pdfioPageOpenStream(page, stream_index, true); + char token[1024]; + + if (!st) + return (NULL); + + while (token_count > 0) + { + if (!pdfioStreamGetToken(st, token, sizeof(token))) + { + pdfioStreamClose(st); + return (NULL); + } + + token_count --; + } + + return (st); +} + void process_content_stream(p2c_device_t *dev, pdfrip_page_t *page_data) @@ -657,8 +745,12 @@ process_content_stream(p2c_device_t *dev, for(size_t i=0; inum_streams; i++) { pdfio_stream_t *st = pdfioPageOpenStream(page_data->object, i, true); + size_t token_count = 0; + while (pdfioStreamGetToken(st, token, sizeof(token))) { + token_count ++; + //fprintf(stderr, "DEBUG: Token: '%s'\n", token); if (isdigit(token[0]) || token[0] == '-' || token[0] == '+' || token[0] == '.') { @@ -717,19 +809,39 @@ process_content_stream(p2c_device_t *dev, //fprintf(stderr, "hello DEBUG: Token: '%s'\n", token); const pdf_operator_t *op = bsearch(token, operator_table, operator_table_size, sizeof(pdf_operator_t), compare_operators); - if (op) - { - op->handler(dev, page_data->resources_dict); - } - else - { + if (op) + { + if (!strcmp(token, "Do")) + { + pdfioStreamClose(st); + st = NULL; + + op->handler(dev, page_data->resources_dict); + + st = reopen_page_stream_at_token(page_data->object, i, token_count); + if (!st) + { + fprintf(stderr, "ERROR: Unable to resume page content stream after Do\n"); + return; + } + } + else + { + op->handler(dev, page_data->resources_dict); + } + } + else + { if (g_verbose) printf("DEBUG: Unhandled operator: %s\n", token); - } + } // Clear the operand stack for the next command operand_stack_ptr = 0; } } + + if (st) + pdfioStreamClose(st); } } diff --git a/testfiles/input/xobject/two-images.pdf b/testfiles/input/xobject/two-images.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e6bf9e831a939cc22fde88d20daff4d45f7a7de3 GIT binary patch literal 67060 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û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 literal 0 HcmV?d00001 From c9612021aace5ec333656aa18180ed33e629809c Mon Sep 17 00:00:00 2001 From: Sam Shubham <68236217+sam-shubham@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:02:27 +0530 Subject: [PATCH 3/3] removed unnecery changes --- source/pdf/pdf-text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/pdf/pdf-text.c b/source/pdf/pdf-text.c index 733785b..bee4e6f 100644 --- a/source/pdf/pdf-text.c +++ b/source/pdf/pdf-text.c @@ -1231,7 +1231,7 @@ getPageFonts(p2c_device_t *dev) // I - PDF2Cairo Conversion document dev->fonts[cur_font]->last_char = (int)pdfioDictGetNumber(ref_font_dict, "LastChar"); pdfio_obj_t *width_object = pdfioDictGetObj(ref_font_dict, "Widths"); pdfio_array_t *width_array = pdfioObjGetArray(width_object); - if(!width_array) + if(width_array) { fprintf(stderr, "No Width Array"); return false;