我已经安装了 BI 发布者桌面,它可以帮助我们从带有示例数据的 RTF 文件生成和可视化 PDF。我们使用的 RTF 文件是英文和中文字符的混合,并带有示例 XML 数据,我们能够看到我们想要的 PDF。
当我们在我们的 java 代码中使用相同的 RTF(使用 BI 发布者 Java API)来创建 PDF 时,所有的中文字符都被替换为问号 (?)。
下面是我们将 RTF 转换为 PDF 的代码
RTFProcessor rtfp = new RTFProcessor(pTemplate);
ByteArrayOutputStream xslOutStream = new ByteArrayOutputStream();
rtfp.setOutput(xslOutStream);
rtfp.process();
//Use XSL Template and Data from the VO to generate report and return the OutputStream of report
ByteArrayInputStream xslInStream = new ByteArrayInputStream(xslOutStream.toByteArray());
FOProcessor processor = new FOProcessor();
ByteArrayInputStream dataStream =
new ByteArrayInputStream((byte[])pXmlOut); ///amDpc.getXMLData(pVoInstName));
processor.setData(dataStream);
processor.setTemplate(xslInStream);
ByteArrayOutputStream pdfOutStream = new ByteArrayOutputStream();
processor.setOutput(pdfOutStream);
byte outFileTypeByte = FOProcessor.FORMAT_PDF;
processor.setOutputFormat(outFileTypeByte);
processor.generate();
dataBytes = pdfOutStream.toByteArray();
谷歌搜索建议将字体文件添加到 BI 发布者 $oracle_top 位置或 $java_home/jre/lib/fonts 位置。由于不直接使用 BI 发布者,因此排除了选项 1 ($oracle_top),选项 2 需要测试部署在 PROD 服务器上的所有 ADF 应用程序,我想避免这种情况。
关于如何打印汉字有什么建议吗?
软件版本:Oracle BI Publisher Desktop 12.2.1.4.0