微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

想要在下面的代码中添加页面和打印机设置以打印 PDF

如何解决想要在下面的代码中添加页面和打印机设置以打印 PDF

我使用以下 .NET ABL 代码使用认打印机选项打印 pdf。现在我想设置那些打印机和页面设置。我知道它们在 System.Drawing.Printing 设置中,但任何人都知道如何将其与 processstartinfo 集成以使用这些参数设置进行打印。

USING System.*.
USING System.Collections.Generic.*.
USING System.Diagnostics.*.
USING System.IO.*.
USING System.Linq.*.
USING System.Text.*.
USING System.Threading.Tasks.*.
USING System.Drawing.*.

DEFINE VARIABLE proc AS System.Diagnostics.Process   NO-UNDO.
DEFINE VARIABLE startInfo AS System.Diagnostics.processstartinfo   NO-UNDO.
DEFINE VARIABLE printerSettings AS System.Drawing.Printing.PrinterSettings   NO-UNDO.
DEFINE VARIABLE pageSettings AS System.Drawing.Printing.PageSettings   NO-UNDO.


DEFINE VARIABLE sFileName  AS CHaraCTER   NO-UNDO.
DEFINE VARIABLE sPrinter  AS CHaraCTER   NO-UNDO.
DEFINE VARIABLE sArgs AS CHaraCTER   NO-UNDO.

/* HOW To Handle Printer and Page Settings here? 
ASSIGN
    printerSettings = NEW System.Drawing.Printing.PrinterSettings()
    printerSettings:PrinterName = "Microsoft Print to PDF (redirected 4)"
    printerSettings:copies = 01.
    
ASSIGN
    pageSettings = new System.Drawing.Printing.PageSettings(printerSettings). 
*/

ASSIGN
    startInfo = new System.Diagnostics.processstartinfo()
    sFileName = "C:\temp\file.pdf"
    startInfo:FileName = sFileName    
    sPrinter  = "Microsoft Print to PDF (redirected 4)"
    startInfo:Verb = "print"
    startInfo:Arguments=sPrinter.

ASSIGN    
    startInfo:WindowStyle = System.Diagnostics.ProcessWindowStyle:HIDDEN
    startInfo:CreateNowindow = TRUE
    proc = System.Diagnostics.Process:Start(startInfo).
proc:WaitForExit(15000).
IF NOT proc:HasExited THEN DO:
    proc:Kill().
    proc:dispose().
END.

任何帮助都将受到高度赞赏。 问候

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。