以编程方式将PDF文件打印为不带PrinterDialog的PDF

时间:2019-02-25 06:15:52

标签: vb.net pdf

我正在一个项目中,我想使用Microsoft的“打印到PDF”(在Windows 10上)自动收缩PDF文档。尽管我在使用第三方工具方面取得了成功,但通常要压缩的最重要的PDF文档之一包含一些扩展名,这些扩展名使其无法通过PDFium(chromium?)正常工作。因此,我目前正在尝试在没有第三方库的情况下进行操作。

我已经通过几种不同的方式取得了一定程度的成功,但是“最简单的”仍然有一些警告。

此代码使我可以在Adobe Reader中打开PDF,启动打印过程,并显示打印对话框,用户可以在其中命名和保存文件。但是,如果可能的话,我想完全不用打印对话框来完成此操作,因为我已经有了一个标准化的命名约定,并且不希望用户需要与对话框进行交互才能转换多个文件。

    Sub printme() handles button1.click
    Dim info = New ProcessStartInfo("C:\Users\[username]\Desktop\se4118.pdf")
    Dim p As Process

    'Set process setting to be hidden
    info.Verb = "print"
    info.CreateNoWindow = True
    info.WindowStyle = ProcessWindowStyle.Hidden
    info.Arguments = "Microsoft Print To PDF"

    'Start hidden process
    p = New Process()
    p.StartInfo = info
    p.Start()
    end sub

我已经考虑过将多个参数提交到“ info.Arguments”中,但是没有成功。有谁知道如何在不显示打印对话框的情况下使用预定的名称方案来启动此打印?如果无法通过这种方式,您是否可以推荐另一种可以将PDF打印到PDF的方式(是否使用Adobe)?谢谢您的所有帮助。

0 个答案:

没有答案