sorry for crossposting - but this one is worth mentioning:
Thanks to Vinish Kapoor and his detailed post on rendering a pdf or image in a static region.
This is a working example for APEX 21.1 (not tested on other versions)
The steps in short:
1. have a table (my_table) with a blob column and mimetype column - and id ofcourse...
2. create an application process (in shared components) of type AJAX callback
DECLARE
vBlob blob;
vmimetype varchar2(50);
BEGIN
SELECT BLOB_column, mimetype_column INTO vBlob, vmimetype
FROM my_table
WHERE ID = V('P3_ID');
owa_util.mime_header(vmimetype,false);
htp.p('Content-Length: ' || dbms_lob.getlength(vBlob));
owa_util.http_header_close;
wpg_docload.download_file(vBlob);
exception
when no_data_found then
null;
END;
3. create a page with a region type static content and insert this:
<p align="center">
<iframe src="f?p=&APP_ID.:0:&SESSION.:APPLICATION_PROCESS=display_blob:NO:P3_ID,&P3_ID." width="99%" height="1000">
</iframe>
</p>
Note: contrary to Vinishs example
I had to delete one " : " between NO and :P3_ID... (as shown above)
4. for my purpose I created a 2nd region of type IR or
classic report and put a link on one of the columns to
point to the same page 3 ... and defined a hidden item
named P3_ID.
So as you can see from the above the APEX-URL calls
the APPLICATION_PROCESS "display_blob" and passes
the ID from the page to the process... which in turn
renders the pdf within the iFrame.
I put the report on the left side of the page and
the 2nd region aside of it.
Have fun and thanks to Vinish again! Great job !