直接打印pdf资料
直接打印pdf文件
目前需要实现pdf文件的打印功能。
dobe自带的ocx插件倒是很方便,但是必须安装了Adobe reader才能打印。
用ShellExecute更不行,那是在系统能读pdf的情况下才能用。
查了很多资料,有些控件(好多是.NET下的)都是生成pdf文件,简单的打印功能反而没有。
请问那位推荐个方便易用的控件,介绍下用法。
------解决方案--------------------
水晶报表和微软的报表控件都可以导出PDF文件。
------解决方案--------------------
SHELLEXECUTEINFO ShExecInfoPrintf = {0};
ShExecInfoPrintf.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfoPrintf.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfoPrintf.hwnd = NULL;
ShExecInfoPrintf.lpVerb = TEXT("print");
ShExecInfoPrintf.lpFile = TEXT("C:/aaa.xml"); //此处是待打印的 pdf文档
ShExecInfoPrintf.lpParameters = TEXT("");
ShExecInfoPrintf.lpDirectory = NULL;
ShExecInfoPrintf.nShow = SW_HIDE;
ShExecInfoPrintf.hInstApp = NULL;
ShellExecuteEx(&ShExecInfoPrintf); //可添加 bool变量,判断是否成功。
if (WaitForSingleObject(ShExecInfoPrintf.hProcess,5000) == WAIT_TIMEOUT)
{
TerminateProcess(ShExecInfoPrintf.hProcess, 0);
}
这段代码可以打印,但是会闪烁一下pdfreader那个东西,请问楼主最终怎么解决的呢?
目前需要实现pdf文件的打印功能。
dobe自带的ocx插件倒是很方便,但是必须安装了Adobe reader才能打印。
用ShellExecute更不行,那是在系统能读pdf的情况下才能用。
查了很多资料,有些控件(好多是.NET下的)都是生成pdf文件,简单的打印功能反而没有。
请问那位推荐个方便易用的控件,介绍下用法。
------解决方案--------------------
水晶报表和微软的报表控件都可以导出PDF文件。
------解决方案--------------------
SHELLEXECUTEINFO ShExecInfoPrintf = {0};
ShExecInfoPrintf.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfoPrintf.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfoPrintf.hwnd = NULL;
ShExecInfoPrintf.lpVerb = TEXT("print");
ShExecInfoPrintf.lpFile = TEXT("C:/aaa.xml"); //此处是待打印的 pdf文档
ShExecInfoPrintf.lpParameters = TEXT("");
ShExecInfoPrintf.lpDirectory = NULL;
ShExecInfoPrintf.nShow = SW_HIDE;
ShExecInfoPrintf.hInstApp = NULL;
ShellExecuteEx(&ShExecInfoPrintf); //可添加 bool变量,判断是否成功。
if (WaitForSingleObject(ShExecInfoPrintf.hProcess,5000) == WAIT_TIMEOUT)
{
TerminateProcess(ShExecInfoPrintf.hProcess, 0);
}
这段代码可以打印,但是会闪烁一下pdfreader那个东西,请问楼主最终怎么解决的呢?