请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

4人防

注册会员

4

主题

13

帖子

43

积分

注册会员

积分
43
最新发帖
4人防
注册会员   /  发表于:2025-5-28 16:06  /   查看:173  /  回复:8
18金币
把xml文件导出pdf的时候,边距都设置成了0,讲道理是没有边距的,我们做的程序,再大部分电脑上没问题,但是再一些国外的用户电脑上,会发生偏移,无论怎么设置边距都没有用,如下图,,为什么没左对齐?,是不是跟时区、电脑的英文环境有关系?如何解决?

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

8 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-5-29 09:47:13
沙发
你是通过虚拟打印机生成的pdf,还是通过spread提供的导出pdf的设置来直接导出的?
回复 使用道具 举报
4人防
注册会员   /  发表于:2025-5-29 11:29:53
板凳
var tSht = fpSpread.Sheets[0];
                var printInfo = tSht.PrintInfo;
                printInfo.PdfFileName = filePath;
                printInfo.ShowColor = true;
                printInfo.PrintToPdf = true;
                printInfo.Preview = false;
                printInfo.PdfWriteMode = PdfWriteMode.Append;
                printInfo.ShowRowHeader = PrintHeader.Hide;
                printInfo.ShowColumnHeader = PrintHeader.Hide;
                printInfo.ShowBorder = false;
                printInfo.ZoomFactor = 2.0f;
                printInfo.PrintType = PrintType.All;
                printInfo.Orientation = PrintOrientation.Auto;
                printInfo.PageOrder = PrintPageOrder.Auto;
                printInfo.Centering = Centering.Horizontal;
                fp_w *= 2;
                var fp_h = fp_w * 4 / 3;

                ErrorHelper.Warning($"{fp_w},{fp_h}");

                printInfo.PaperSize = new PaperSize("A44", (int)fp_w + 158, (int)fp_h + 218);
                printInfo.Margin = new PrintMargin(0, 0, 0, 0, 0, 0);
                printInfo.Footer = "/c/fn\"宋体\" /fz\"18\" /p///pc";
                fpSpread.SetPrintInfo(printInfo, -1);
                fpSpread.PrintSheet(-1, false); 这是我的代码
回复 使用道具 举报
4人防
注册会员   /  发表于:2025-5-29 11:44:01
地板
Richard.Ma 发表于 2025-5-29 09:47
你是通过虚拟打印机生成的pdf,还是通过spread提供的导出pdf的设置来直接导出的?



4人防
注册会员   /  发表于:13 分钟前板凳
var tSht = fpSpread.Sheets[0];
                var printInfo = tSht.PrintInfo;
                printInfo.PdfFileName = filePath;
                printInfo.ShowColor = true;
                printInfo.PrintToPdf = true;
                printInfo.Preview = false;
                printInfo.PdfWriteMode = PdfWriteMode.Append;
                printInfo.ShowRowHeader = PrintHeader.Hide;
                printInfo.ShowColumnHeader = PrintHeader.Hide;
                printInfo.ShowBorder = false;
                printInfo.ZoomFactor = 2.0f;
                printInfo.PrintType = PrintType.All;
                printInfo.Orientation = PrintOrientation.Auto;
                printInfo.PageOrder = PrintPageOrder.Auto;
                printInfo.Centering = Centering.Horizontal;
                fp_w *= 2;
                var fp_h = fp_w * 4 / 3;

                ErrorHelper.Warning($"{fp_w},{fp_h}");

                printInfo.PaperSize = new PaperSize("A44", (int)fp_w + 158, (int)fp_h + 218);
                printInfo.Margin = new PrintMargin(0, 0, 0, 0, 0, 0);
                printInfo.Footer = "/c/fn\"宋体\" /fz\"18\" /p///pc";
                fpSpread.SetPrintInfo(printInfo, -1);
                fpSpread.PrintSheet(-1, false); 这是我的代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-5-30 09:15:52
5#
我看你是通过fp_w 这个变量来设置的PaperSize,是否有可能是因为一些原因导致这个变量发生了变化?

你可以先设置一个固定的长宽看看
回复 使用道具 举报
4人防
注册会员   /  发表于:2025-6-3 14:38:36
6#
Richard.Ma 发表于 2025-5-30 09:15
我看你是通过fp_w 这个变量来设置的PaperSize,是否有可能是因为一些原因导致这个变量发生了变化?

你可 ...

这个宽度,我打印出来看的,客户那边和我这边一致
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-6-3 18:05:50
7#
你可以把这个spread通过save方法保存成xml文件发上来,我们先看看文件是否有问题
回复 使用道具 举报
4人防
注册会员   /  发表于:2025-6-5 08:26:26
8#
Richard.Ma 发表于 2025-6-3 18:05
你可以把这个spread通过save方法保存成xml文件发上来,我们先看看文件是否有问题

请查看附件................

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-6-5 18:18:51
9#
你可以尝试下面的代码是否能解决问题

fpSpread1.ActiveSheet.PrintInfo.PaperSize.RawKind = (int)PaperKind.Custom;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部