找回密码
 立即注册

QQ登录

只需一步,快速开始

dawning

注册会员

8

主题

11

帖子

47

积分

注册会员

积分
47
dawning
注册会员   /  发表于:2024-11-8 15:32  /   查看:129  /  回复:3
1金币
在winform窗体上执行下面代码时可以正常导出PDF。pdf可以正常打开。
{
gridExport创建,gridExport加载数据,设置导出格式
......
gridExport.SetPrintInfo(pi, -1);
gridExport.PrintSheet(-1);
}

做定时任务导出pdf  添加线程后 下面导出pdf报错了。怎么处理?
{
new Task(() =>
                    {
gridExport创建,gridExport加载数据,设置导出格式
......
gridExport.SetPrintInfo(pi, -1);
gridExport.PrintSheet(-1);
  });
}


尝试了用
方式一,还是报上面的错误。

     gridExport.Invoke((MethodInvoker)delegate
                {
                    gridExport.SetPrintInfo(pi, -1);
                    gridExport.PrintSheet(-1);
                });

方式二,Post里代码未执行
        private static SynchronizationContext _syncContext = SynchronizationContext.Current;

                _syncContext.Post(_ =>
                {


                    gridExport.SetPrintInfo(pi, -1);
                    gridExport.PrintSheet(-1);

                }, null);






3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-8 17:01:50
沙发
看起来是跨线程调用引起的问题

请发一个复现问题的demo上来,我帮你看看怎么改
回复 使用道具 举报
dawning
注册会员   /  发表于:2024-11-11 11:04:23
板凳
Richard.Ma 发表于 2024-11-8 17:01
看起来是跨线程调用引起的问题

请发一个复现问题的demo上来,我帮你看看怎么改

image.png724070129.png

pdf导出demo.zip

16.61 MB, 下载次数: 1

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-11 16:08:52
地板
看了一下,你用的是很早前的5.0版本了,应该是老版本本身就不支持在非主线程中打印

建议升级到最新版V17即可正常打印
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部