为有中文需求的客户提供多渠道中文技术支持.

Mon May 16, 2022 12:47 am

技术支持,您好

我这里是日本一家物流公司,我是部门负责人
希望回答下面问题

我现在,购买了「Spire.PDF for .NET」,但是,在执行「_pdfdoc.LoadFromFile("XXXX")」跟,
「_pdfdoc.Print()」后,打印出来的PDF文档,会有多余的页边距问题,造成打印出来的字跟用纸后面的表格出现位置对不上问题
现在暂时的解决办法是,生成了一个新的PDF后,
newPage.Canvas.ScaleTransform
newPage.Canvas.DrawTemplate(page.CreateTemplate(), New PointF(left, top))
方法去解决多余页边距问题
我想问一下,能不能不生成一个新的PDF去解决控制页边距问题
比如,在
执行「_pdfdoc.LoadFromFile("XXXX")」
同时,去指定页边距
这样可以不生成一个新的PDF提高性能同时,去解决打印位置问题
请指教,谢谢!!!

kantsu.com
 
Posts: 6
Joined: Fri May 13, 2022 4:17 am

Mon May 16, 2022 9:05 am

您好,

感谢您的询问。
我这边模拟了一个PDF文档进行初步测试,但没有复现您的问题。下面是我的测试代码,建议您可以设置打印自适应页面大小,请参考以下代码。
Code: Select all
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile(fileName);
            //设置自适应页面打印
            pdf.PrintSettings.SelectSinglePageLayout(Spire.Pdf.Print.PdfSinglePageScalingMode.FitSize);
            //使用默认打印机打印文档所有页面
            pdf.Print();

另外我们还提供了pdf.PrintSettings.SetPaperMargins(top,bottom,left,right)方法在打印时设置页边距。
如果这不能解决您的问题,请提供以下信息供我们进一步调查。您可以将文件附在这里或者通过邮箱(support@e-iceblue.com)发送给我们,非常感谢!
1)您的PDF文档以及打印后的效果图
2)打印机名称
3)测试环境(win10 64bit)以及应用程序类型(Console App, .NET Framework 4.6)

Sincerely,
Kylie
E-iceblue support team
User avatar

kylie.tian
 
Posts: 412
Joined: Mon Mar 07, 2022 2:30 am

Wed May 18, 2022 8:28 am

谢谢您的回复,问题已经解决了!

顺便问您下,在执行
pdf.PrintSettings.PrinterName = XXX·
pdf.Print();
之前,或者之后,有没有一个方法,可以取到指定打印机是否正常,还是用纸不够,还是异常?
期待您的回复,谢谢!!!

kantsu.com
 
Posts: 6
Joined: Fri May 13, 2022 4:17 am

Wed May 18, 2022 9:28 am

您好,

感谢您的回复。
我们提供了pdf.PrintSettings.IsValid方法来判断打印机是否可用。如果有任何问题,请随时联系我们。

Sincerely,
Kylie
E-iceblue support team
User avatar

kylie.tian
 
Posts: 412
Joined: Mon Mar 07, 2022 2:30 am

Return to 中文技术支持