反馈已提交

网络繁忙

使用API导出文本角标丢失

  • 文档创建者:Catqiu
  • 历史版本:3
  • 最近更新:Catqiu 于 2023-04-14
  • 1. 概述

    1.1 问题描述

    使用导出 API 导出文件时,如果报表的文字内容中包含特殊的角标,例如下图所示的化学符号角标:

    由于后台 API 不支持导出角标,导出后,角标的效果跟预览的效果不一致,如下图所示:

    1.2 解决方案

    可以利用导出 URL 接口将文件导出到 JVM 内存里面,然后从内存中利用字节输出流写出到操作系统指定盘符。

    2. 示例代码

    注:Web工程也可以调用性能插件的 PDF 打印方法显示角标,但是实现方式与文档中提供的代码不一样。代码不需要额外写 startModule,否则插件效果不会生效。

    package com.fr.io;
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    public class testUrl {
        public static void main(String[] args){
            String pdfPath =  "D:"+File.separator+"TEST.pdf";
            try {
                URL url = new URL("http://localhost:8020/FR10/decision/view/report?viewlet=WorkBook48.cpt&format=pdf&aa=9");
                URLConnection connection = url.openConnection();
                BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());
                FileOutputStream outputStream = new FileOutputStream(new File(pdfPath));
                byte[] buff = new byte[1024];
                int byteRead;
                while (-1!=(byteRead=bis.read(buff,0,buff.length))){
                    outputStream.write(buff,0,byteRead);
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持