Oracle Apex PDF查看器

Oracle Apex PDF查看器,oracle,pdf,oracle-apex,Oracle,Pdf,Oracle Apex,我是Oracle Apex的新手。我需要帮助在Oracle APEX中显示PDF。我有一个问题:我已经把PDF上传到数据库了。我将PDF保存为数据库中的blob。之后,我在经典报告中显示了PDF的名称。当我点击该名称时,我想看到我上传的PDF的预览。 现在我正在寻找一种方法来显示带有代码的PDF。有人能帮忙吗 我需要上一个和下一个按钮 如何在该地区显示此PDF?以下是我使用APEX\u应用程序\u TEMP\u文件快速创建的一个示例。希望这就是你想要实现的。 用户名:demo 密码:demo

我是Oracle Apex的新手。我需要帮助在Oracle APEX中显示PDF。我有一个问题:我已经把PDF上传到数据库了。我将PDF保存为数据库中的blob。之后,我在经典报告中显示了PDF的名称。当我点击该名称时,我想看到我上传的PDF的预览。 现在我正在寻找一种方法来显示带有代码的PDF。有人能帮忙吗

我需要上一个和下一个按钮


如何在该地区显示此PDF?

以下是我使用
APEX\u应用程序\u TEMP\u文件快速创建的一个示例。希望这就是你想要实现的。

用户名:demo
密码:demo

这使用了Mozilla的项目。这里有一个你可能需要的快速配方

  • 创建一个
    文件浏览
    页面项,并将存储类型设置为
    表APEX\u应用程序\u TEMP\u文件
  • 创建页面按钮以提交页面
  • 创建经典报告区域并输入以下查询:

    select
        id
        , filename
    from apex_application_temp_files
    where application_id = :APP_ID
    
  • 添加虚拟列并设置HTML表达式:

    <button type="button" class="btn-preview-pdf" data-id="#ID#">Preview</button>
    
  • 对于操作,还设置受影响的元素:

    a。选择类型:
    jQuery选择器

    b。jQuery选择器:
    #预览窗格

  • 遵循Joel Kallman关于创建下载文件的链接的介绍。您将需要一个应用程序流程(
    DOWNLOADPDF
    )和一个应用程序项(
    FILE\u ID
    )应用程序流程
    DOWNLOADPDF
    的修改代码如下所示:

    begin
        for file in (select *
                    from apex_application_temp_files
                    where id = :FILE_ID) loop
            --
            sys.htp.init;
            sys.owa_util.mime_header( file.mime_type, FALSE );
            sys.htp.p('Content-length: ' || sys.dbms_lob.getlength( file.blob_content));
            sys.htp.p('Content-Disposition: attachment; filename="' || file.filename || '"' );
            sys.htp.p('Cache-Control: max-age=3600');  -- tell the browser to cache for one hour, adjust as necessary
            sys.owa_util.http_header_close;
            sys.wpg_docload.download_file( file.blob_content );
    
            apex_application.stop_apex_engine;
        end loop;
    end;
    
  • 差点错过这个。在页面属性中,将JavaScript文件URL设置为任何CDN。例如:

    //cdnjs.cloudflare.com/ajax/libs/pdf.js/2.0.550/pdf.min.js

  • 请注意,这是一个非常基本的原型。预览仅允许您查看第一页。您将需要找出允许多页查看的选项,然后执行必要的操作。我会让你去弄清楚的


    应该是这样。如果对你不起作用,请告诉我

    下面是我使用
    APEX\u应用程序\u TEMP\u文件快速创建的一个示例
    。希望这就是你想要实现的。

    用户名:demo
    密码:demo

    这使用了Mozilla的项目。这里有一个你可能需要的快速配方

  • 创建一个
    文件浏览
    页面项,并将存储类型设置为
    表APEX\u应用程序\u TEMP\u文件
  • 创建页面按钮以提交页面
  • 创建经典报告区域并输入以下查询:

    select
        id
        , filename
    from apex_application_temp_files
    where application_id = :APP_ID
    
  • 添加虚拟列并设置HTML表达式:

    <button type="button" class="btn-preview-pdf" data-id="#ID#">Preview</button>
    
  • 对于操作,还设置受影响的元素:

    a。选择类型:
    jQuery选择器

    b。jQuery选择器:
    #预览窗格

  • 遵循Joel Kallman关于创建下载文件的链接的介绍。您将需要一个应用程序流程(
    DOWNLOADPDF
    )和一个应用程序项(
    FILE\u ID
    )应用程序流程
    DOWNLOADPDF
    的修改代码如下所示:

    begin
        for file in (select *
                    from apex_application_temp_files
                    where id = :FILE_ID) loop
            --
            sys.htp.init;
            sys.owa_util.mime_header( file.mime_type, FALSE );
            sys.htp.p('Content-length: ' || sys.dbms_lob.getlength( file.blob_content));
            sys.htp.p('Content-Disposition: attachment; filename="' || file.filename || '"' );
            sys.htp.p('Cache-Control: max-age=3600');  -- tell the browser to cache for one hour, adjust as necessary
            sys.owa_util.http_header_close;
            sys.wpg_docload.download_file( file.blob_content );
    
            apex_application.stop_apex_engine;
        end loop;
    end;
    
  • 差点错过这个。在页面属性中,将JavaScript文件URL设置为任何CDN。例如:

    //cdnjs.cloudflare.com/ajax/libs/pdf.js/2.0.550/pdf.min.js

  • 请注意,这是一个非常基本的原型。预览仅允许您查看第一页。您将需要找出允许多页查看的选项,然后执行必要的操作。我会让你去弄清楚的


    应该是这样。如果对你不起作用,请告诉我

    这是工作!谢谢你,你救了我的命。如何更改为多页查看?我已更新演示以显示案例分页。这是一个粗糙的解决方案。我会在另一个时间更新文章的细节。同时,看看新的按钮和JavaScript。如前所述,技巧在于页面呈现函数和它所采用的页码参数。这将有助于您思考如何使用自己的这个。我看到了演示。很酷。我只需要上一个。按下一个按钮。你能告诉我详细情况吗?谢谢分享下一个和上一个按钮代码,谢谢@Adrian PIt的工作!谢谢你,你救了我的命。如何更改为多页查看?我已更新演示以显示案例分页。这是一个粗糙的解决方案。我会在另一个时间更新文章的细节。同时,看看新的按钮和JavaScript。如前所述,技巧在于页面呈现函数和它所采用的页码参数。这将有助于您思考如何使用自己的这个。我看到了演示。很酷。我只需要上一个。按下一个按钮。你能告诉我详细情况吗?谢谢分享下一个和上一个按钮代码,谢谢@Adrian P