[英]C# System.Diagnostics.Process verb issue
我有一个用C#VS 2008编写的Windows应用程序。此应用程序的目的是将任何文件转换为PDF文件。 我找到了用于转换文件的代码,但是我遇到了一个小问题。
首先是代码:
private void PrintToAdobePDF(string strInputFilePath)
{
ProcessStartInfo pProcInfo = new ProcessStartInfo();
bool blResult;
blResult = SetDefaultPrinter(D2P_Adobe_Printer);
if (blResult)
{
pProcInfo.FileName = strInputFilePath;
pProcInfo.Verb = "Print";
pProcInfo.CreateNoWindow = true;
pProcInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process pProc = Process.Start(pProcInfo);
pProc.WaitForExit(1000);
pProc.CloseMainWindow();
pProc.Close();
}
我遇到的问题是,当调用Process.Start()方法时,它运行的是两个动词,而不是我指定的一个动词(“打印”)。 它正在运行“打开”和“PrintTo”,它使原始文件的应用程序打开并挂起应用程序(即jpg打开Windows传真和图片查看器)。 我的问题是如何在Process.Start()方法中使用“Print”动词?
先感谢您
什么是strInputFilePath发送? 文档说只发送文件名,所以如果你发送可能导致问题的整个路径。
不,发送没有扩展名的文件名将失败。
最终使用System.Diagnostics.Process打印任意文件最多是不可预测的。 这完全取决于您的操作系统如何处理每种类型的文件,以及您的注册表是否已正确配置以处理该文件。
我猜想以这种方式打印.doc文件可能工作正常,而其他文件类型可能无法正常工作。
在我看来,你应该找到一些关于你将允许“自动”打印的文件类型的限制,并为每种类型的文件构建工作解决方案。 否则,你会发现很多不可预知的行为。
您是否尝试过研究是否可以使用命令行参数执行Adobe Reader来完成同样的事情? 有时候依赖shell是不确定的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.