找回密码
 立即注册

QQ登录

只需一步,快速开始

大白菜

中级会员

77

主题

257

帖子

884

积分

中级会员

积分
884

圣诞拼拼乐微信认证勋章

大白菜
中级会员   /  发表于:2023-4-3 16:11  /   查看:3775  /  回复:10
本帖最后由 Richard.Huang 于 2023-12-19 12:07 编辑

产品:GcExcel
版本:V5.2
问题编号:DOCXLS-7895

1、目前我们用后端的gcexcel savepdf 接口保存后,有数据丢失问题。
image.png490498046.png

第二行的模板两个文字在pdf内会丢失,经过测试我们把第二行去掉合并就正常了。

export (10).zip

11.04 KB, 下载次数: 183

10 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-3 18:28:40
沙发
本帖最后由 Richard.Ma 于 2023-4-3 18:33 编辑

问题可以重现,已经作为bug提交,后续进展我会在帖子中更新DOCXLS-7895
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-13 18:16:45
板凳
您好,此问题后续经测试,实际导出的pdf并没有丢失文字,只是由于打印分页将B2单元格的文字部分分页到了第二和第三页,此结果和excel的分页结果也是相同的,请本地再详细测试一下

image.png638871154.png
回复 使用道具 举报
大白菜
中级会员   /  发表于:2023-12-13 18:44:19
地板
Richard.Ma 发表于 2023-12-13 18:16
您好,此问题后续经测试,实际导出的pdf并没有丢失文字,只是由于打印分页将B2单元格的文字部分分页到了第 ...

我这边转的不是分页显示问题,是文字没了,具体pdf见附件,有需要我把后端gc代码附上。

测试.zip

7.01 KB, 下载次数: 212

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-14 11:52:28
5#
猜测可能是和版本有关系,不过最好您可以附上一个GC代码,我们这边通过V5.2和V6.2对比测试一下就可以了。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2023-12-14 13:22:15
6#
Richard.Ma 发表于 2023-12-14 11:52
猜测可能是和版本有关系,不过最好您可以附上一个GC代码,我们这边通过V5.2和V6.2对比测试一下就可以了。

        List<IWorkbook> workbooks = new ArrayList<>();
        DeserializationOptions deserializationOptions = new DeserializationOptions();
        deserializationOptions.setIgnoreStyle(false);
        deserializationOptions.setIgnoreFormula(true);
        Workbook workbook =new Workbook(LogConstant.LicenseV5); //授权你们自己填下
        workbook.fromJson(附件中的json, deserializationOptions);
        doFontSet(workbook);
        workbooks.add(workbook);

            String fileName = UUID.randomUUID().toString().toLowerCase(Locale.ROOT) + ".pdf";
            FileOutputStream outputStream = new FileOutputStream("../" + fileName);
            //这里我这边有多个文件合并情况,可不管,就测试单个导出
            PrintManager printManager = new PrintManager();
            printManager.saveWorkbooksToPDF(outputStream, workbooks);
            File file = new File("../" + fileName);
            InputStream in = new FileInputStream(file.getPath());
            byte[] bytes = new byte[in.available()];
            in.read(bytes);
            HttpHeaders headers = new HttpHeaders();
            headers.add("Content-Disposition", "attachment;filename=" + fileName);
            ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(bytes, headers, HttpStatus.OK);
            in.close();
            file.delete();

            return entity;

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-14 18:51:24
7#
gcexcel本身是提供了save方法来保存pdf的,直接用workbook.save(filename); 来保存pdf
回复 使用道具 举报
大白菜
中级会员   /  发表于:2023-12-14 19:04:27
8#
Richard.Ma 发表于 2023-12-14 18:51
gcexcel本身是提供了save方法来保存pdf的,直接用workbook.save(filename); 来保存pdf

我这边是多个sheet要合并然后导出pdf的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-15 09:35:25
9#
也没有重现你的问题,代码如下



我建议你还是上传一个完整的java控制台demo,我帮你看看,不排查是和你说的多workbook有关系

5ca08d0b-75a4-44c1-92aa-2519c103a82b.pdf (54.83 KB, 下载次数: 186)
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-28 17:00:01
10#
您好,请问楼主的问题是否得到解决,如果仍然存在问题,欢迎继续跟帖询问
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部