Oracle APEX 5.0 динамически встраивает PDF в страницу

1

привет здесь начинающий APEX,

У меня возникают проблемы с динамическим вложением pdf-url в мое приложение. Изображения отображаются нормально, но это не работает с pdf.

У меня есть apex_process для вызова процедуры, используемой для загрузки BLOB файлов (* code1). Этот apex_process вызывается через URL-адрес. Я получил img-теги, чтобы показывать изображения, когда я устанавливаю указанный URL-адрес в свойстве sgc-тега img. Однако, похоже, это не работает с тегами объектов. Установка URL-адреса свойства данных тега объекта ничего не делает.

Кто-нибудь знает, как динамически показывать PDF, хранящийся в БД. любая помощь приветствуется

APEX 5.0.4 Oracle 11g

* code1

sys.htp.init;
sys.htp.p('Content-length: ' || sys.dbms_lob.getlength(p_FileBlob));
sys.htp.p('Content-Disposition: attachment; filename="' || p_FileNm|| '"' );
sys.owa_util.http_header_close;
sys.wpg_docload.download_file(p_FileBlob);

Обновить

Возможно, я был неясен в своей цели. Я хочу на самом деле внедрить PDF-документ в мою страницу, например, иметь вид adobe-reader-esque непосредственно на странице. У вас нет ссылки для загрузки pdf.

Теги:
pdf
embed
oracle-apex-5

1 ответ

1

Я создал страницу (стр. 32) для обработки всех загрузок. Он имеет скрытый элемент идентификатора (P32_ID) и несколько перед процессами заголовка. Каждый процесс обрабатывает другой запрос.

Для pdf это может быть следующим:

На вызывающей странице: f? P = & APP_ID.: 32: & SESSION.: GETPDF: NO :: P32_ID: YOUR_PDF_ID

На страницу отправляется запрос: GETPDF и идентификатор PDF для загрузки.

На странице 32 есть функция ЗАГРУЗКА - перед процессом заголовка с условием REQUEST = Expression 1, GETPDF.

Код PLSQL для этого процесса:

declare
   l_length       pls_integer;
   l_blob         blob;
   l_content_type varchar2(100);
   l_filename     varchar2(30);
begin

   select blobdata
   into l_blob
   from your_blob_table 
   where ID = v('P32_ID');


   l_content_type := 'application/pdf';

   l_length := nvl(dbms_lob.getlength(l_blob), 0);

   if l_length = 0
   then
      htp.p('No data');
      return;
   end if;

   l_filename := 'GETPDF.pdf';


   -- create response header
   owa_util.mime_header(l_content_type, false);
   -- add furhter header attributes
   htp.p('Content-length: ' || l_length);
   htp.p('Content-Disposition: attachment; filename="' || l_filename || '"');
   -- close the headers
   owa_util.http_header_close;
   -- download the BLOB
   wpg_docload.download_file(l_blob);

exception
   when others then
      htp.p(sqlerrm);
end;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню