在PDF报告中显示BLOB图像-Oracle APEX

在PDF报告中显示BLOB图像-Oracle APEX,pdf,printing,oracle11g,blob,oracle-apex,Pdf,Printing,Oracle11g,Blob,Oracle Apex,我一直在尝试使用Oracle BI Publisher作为打印服务器在PDF报告中输出blob。我有 对于非常小的图像没有问题,但是当图像大小增加时,我没有得到任何输出。我在用这个方法 在这篇博文中建议: 我注意到斯科特·韦斯利也面临同样的问题。 这是我用来保存图像的表格: CREATE TABLE MY_IMAGES ( ID NUMBER NOT NULL, IMAGE BLOB, FILE_NAME VARCHAR2(50), MIME_TYPE VARCHAR2(30)

我一直在尝试使用Oracle BI Publisher作为打印服务器在PDF报告中输出blob。我有 对于非常小的图像没有问题,但是当图像大小增加时,我没有得到任何输出。我在用这个方法 在这篇博文中建议:

我注意到斯科特·韦斯利也面临同样的问题。 这是我用来保存图像的表格:

CREATE TABLE MY_IMAGES (
  ID NUMBER NOT NULL,
  IMAGE BLOB,
  FILE_NAME VARCHAR2(50),
  MIME_TYPE VARCHAR2(30)
);
/
我使用Tim Hall的函数将BLOB列编码为Base64:

CREATE OR REPLACE FUNCTION base64encode(p_blob IN BLOB)
RETURN CLOB
-----------------------------------------------------------------------------------
- File Name : http://oracle-base.com/dba/miscellaneous/base64encode.sql
- Author : Tim Hall
- Description : Encodes a BLOB into a Base64 CLOB.
- Last Modified: 09/11/2011
-----------------------------------------------------------------------------------
IS
l_clob CLOB;
l_step PLS_INTEGER := 12000; - make sure you set a multiple of 3 not higher than 24573
BEGIN
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_blob) - 1 )/l_step) LOOP
l_clob := l_clob || UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode
(DBMS_LOB.substr(p_blob,
l_step, i * l_step + 1)));
END LOOP;
RETURN l_clob;
END;
这是我的select语句作为我的报告查询:

SELECT FILE_NAME, BASE64ENCODE(IMAGE)
FROM MY_IMAGES
在我的RTF报告布局中,我使用以下代码呈现编码的BLOB:

<fo:instream-foreign-object content-type="image/jpg">
<xsl:value-of select="IMAGE"/>
</fo:instream-foreign-object>

我在表中插入了一个5KB的图像,它工作得很好,但当我尝试使用500Kb图像时,出现了 没有结果。 我想知道是否有人提出了解决方案,或者这个问题是否得到了解决。我在APEX 5.1上 一个11g数据库,使用BI发布服务器11g。
感谢您的帮助。

关于在PDF报告中显示BLOB图像,限制为32KB

这里有一个很好的解决方法:


关于在PDF报告中显示BLOB图像,限制为32KB

这里有一个很好的解决方法:


您是否在OAC上创建了演示?如果是,我将研究它。如果我没有弄错,OAC的实例设置中没有打印服务器设置。几天前我在OAC上进行了测试,很多基本功能都不能正常工作。无论如何,我找到了我将在下面发布的解决方案。您是否在OAC上创建了演示?如果是,我将进行研究。如果我没有弄错,OAC的实例设置中没有打印服务器设置。几天前我在OAC上进行了测试,很多基本功能都不能正常工作。无论如何,我找到了解决方案,我将在下面发布。