diff --git a/Userland/Libraries/LibPDF/Parser.cpp b/Userland/Libraries/LibPDF/Parser.cpp index 6c79431392..7ba360e866 100644 --- a/Userland/Libraries/LibPDF/Parser.cpp +++ b/Userland/Libraries/LibPDF/Parser.cpp @@ -591,9 +591,12 @@ PDFErrorOr> Parser::parse_operators() m_reader.consume_whitespace(); auto stream_bytes = m_reader.bytes().slice(stream_start, stream_end - stream_start); - // FIXME: Do more with inline images than just skipping them. - (void)map; - (void)stream_bytes; + + Vector inline_image_args; + auto map_object = make_object(move(map)); + inline_image_args.append(make_object(move(map_object), MUST(ByteBuffer::copy(stream_bytes)))); + operators.append(Operator(OperatorType::InlineImageEnd, move(inline_image_args))); + continue; } operators.append(Operator(operator_type, move(operator_args))); diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index f45667ad8e..74af884b39 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -688,8 +688,19 @@ RENDERER_HANDLER(set_painting_color_and_space_to_cmyk) } RENDERER_TODO(shade) -RENDERER_TODO(inline_image_begin) -RENDERER_TODO(inline_image_begin_data) + +RENDERER_HANDLER(inline_image_begin) +{ + // The parser only calls the inline_image_end handler for inline images. + VERIFY_NOT_REACHED(); +} + +RENDERER_HANDLER(inline_image_begin_data) +{ + // The parser only calls the inline_image_end handler for inline images. + VERIFY_NOT_REACHED(); +} + RENDERER_TODO(inline_image_end) RENDERER_HANDLER(paint_xobject) {