【问题标题】:Oracle APEX 5.0 dynamically embedding PDF into pageOracle APEX 5.0 将 PDF 动态嵌入页面
【发布时间】:2018-09-04 08:05:17
【问题描述】:

你好 APEX 初学者,

我无法将 pdf 网址动态嵌入到我的应用程序中。图像正常显示,但不适用于 pdf。

我有一个 apex_process 来调用用于下载 BLOB 文件的过程(*code1)。此 apex_process 通过 URL 调用。每当我在 img 标签的 src 属性中设置所述 url 时,我都会得到 img 标签来显示图像。 但是,这似乎不适用于对象标签。设置对象标签的数据属性的 url 没有任何作用。

有谁知道如何动态显示存储在数据库中的 pdf。 任何帮助表示赞赏

APEX 5.0.4 甲骨文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的链接。

【问题讨论】:

    标签: javascript oracle pdf embed oracle-apex-5


    【解决方案1】:

    内容处置:内联;

    这是关键

    【讨论】:

    • 请养成解释你的解决方案的习惯。好的解释可以帮助任何未来的读者你的解决方案为什么以及如何工作。
    【解决方案2】:

    我创建了一个页面(第 32 页)来处理所有下载。它有一个隐藏的 ID 项 (P32_ID) 和几个前页眉处理。每个进程处理不同的请求。

    对于 pdf,它可能如下所示:

    从调用页面: f?p=&APP_ID.:32:&SESSION.:GETPDF:NO::P32_ID:YOUR_PDF_ID

    向页面发送的是请求:GETPDF 和要下载的 PDF 的 ID。

    第 32 页有一个 ON LOAD - 在标题页进程之前,条件为 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多