在C#中打印PDF文件

14 浏览
0 Comments

在C#中打印PDF文件

我是c#的新手。我在网上搜索了很多关于如何打印pdf的教程,但没有找到一个合适的。然后我想,是否可以使用itextpdf来读取pdf文件,就像这里提到的那样

使用itextsharp dll在VB.NET或C#中读取PDF内容

然后再进行打印。如果可以,应该如何操作?

0
0 Comments

打印PDF文件是许多开发人员在C#中遇到的一个常见问题。解决这个问题的一种方法是使用LPR命令。LPR命令是一个Windows命令,可以用于在命令行中打印文件。

要使用LPR命令打印PDF文件,首先需要在Windows组件中启用LPR。然后,可以使用以下代码在C#中调用LPR命令来打印PDF文件:

Process.Start("LPR -S printerdnsalias -P raw C:\files\file.pdf");

在这个代码示例中,"printerdnsalias"是打印机的网络别名,"C:\files\file.pdf"是要打印的PDF文件的路径。如果你知道打印机的IP地址,也可以使用IP地址来替代别名。

需要注意的是,这种方法只适用于支持PDF直接打印的打印机。如果打印机不支持PDF直接打印,则只能打印PostScript和ASCII文件。此外,打印机必须安装有网络接口,您需要知道其IP地址或别名。

通过使用LPR命令,开发人员可以在C#中实现打印PDF文件的功能。这种方法适用于Windows Vista/7及更高版本的操作系统。但是,需要确保已经启用了LPR组件,并且打印机支持PDF直接打印。

0
0 Comments

打印PDF文件是许多C#开发人员经常遇到的需求之一。下面的内容提供了一种使用Adobe Reader进行批量打印PDF文件的方法。然而,这种方法存在一些问题,需要进行修复。

问题出现的原因是无法依赖Print方法的返回值来确定打印是否成功。在上述代码中,无论打印是否成功,都会返回true。为了解决这个问题,需要找到一种可靠的方法来检查打印任务是否成功。

解决方法是使用System.Drawing.Printing.PrinterSettings.InstalledPrinters属性来获取系统中安装的打印机列表,并与需要打印的打印机进行比较。这样可以确保选择的打印机是有效的,并且可以正常打印。

另外,一旦将打印任务提交到打印队列中,就需要与打印队列进行通信来确保打印任务的执行。通过使用Print Spooler API,可以监控打印队列中的作业,并获取作业的状态和其他相关信息。

为了解决这个问题,可以参考CodeProject网站上的一篇文章,该文章提供了一个用于监控打印队列中作业的.NET库。通过使用这个库,可以获取有关打印任务的详细信息,并根据需要执行其他操作。

总之,要在C#中打印PDF文件,可以使用上述的Print方法。然而,需要注意无法依赖返回值来确定打印是否成功。为了解决这个问题,可以使用PrinterSettings.InstalledPrinters属性来获取有效的打印机列表,并使用Print Spooler API来监控打印队列中的作业。这样可以确保打印任务能够正常执行并获取相关的状态信息。

0
0 Comments

问题:如何在C#中打印PDF文件?

出现的原因:

- 直接使用已安装的Adobe Reader或其他能够打印的PDF阅读器进行打印

- 使用第三方组件,例如PDFView4NET

解决方法:

1. 使用已安装的Adobe Reader或其他PDF阅读器进行打印:

Process p = new Process( );
p.StartInfo = new ProcessStartInfo( )
{
    CreateNoWindow = true,
    Verb = "print",
    FileName = path //put the correct path here
};
p.Start( );

2. 使用第三方组件PDFView4NET进行打印。

其他提示:

- 注意,Process类继承自实现IDisposable接口的组件,因此建议及时释放资源或使用using语句,特别是在多次使用时。

- Adobe Reader的最新版本似乎无法在打印后正确关闭窗口。此方法可能无法实现静默打印,会显示打印选项弹窗。

- 可以通过命令行使用sumatra.exe进行打印,无需任何冗余软件,并且可以通过配置打印选项。

- 请注意,PDFView4NET现在不是免费的。他们的解决方案价格在几百美元左右。

在C#中打印PDF文件可以通过使用已安装的Adobe Reader或其他PDF阅读器进行打印,也可以使用第三方组件PDFView4NET实现。另外,还可以通过命令行使用sumatra.exe进行打印,并且可以配置打印选项。使用这些方法需要注意资源释放和价格问题。

0