当前位置:编程学习 > C#/ASP.NET >>

关于批量打印

VB.net中如何实现pdf文件的批量打印?
--------------------编程问答-------------------- 使用RDLC或水晶报表 . --------------------编程问答-------------------- 批量是指数据批量,还是报表批量?
数据批量就可以用水晶报表啊,很方便的。
报表批量,我还没做过,呵呵,不敢发表建议。。。 --------------------编程问答-------------------- 就是有很多pdf格式的图纸,现在想在不打开这些pdf文件的前提下 一下子全部打印这些文件
这样可以省去一个一个打开打印的时间 --------------------编程问答-------------------- 模拟鼠标,查到打开的窗口后发送打印消息 
循环操作 --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
模拟鼠标,查到打开的窗口后发送打印消息
循环操作

能说详细点吗?
最好能给出简单的代码 --------------------编程问答-------------------- 我使用了adobe reader activeX组件实现的不打开PDF文档对PDF文件进行打印
现在存在2个问题,1.不能实现批量打印;2、该组件不能实现对打印机设置的修改(如选择打印机 选择纸张类型)
请各位达人多多指教 急!!! --------------------编程问答-------------------- 我现在要打印多份pdf文件,要一起打印,中间不间断,于是我就用了一个循环来做,先用插件的loadFile方法   把文件加载,然后就调用PrintAll方法打印,然后loadFile下一个pdf   文件,再PrintAll,这样一直循环到所有的pdf   文件打印完成,但问题是每调用一次PrintAll方法 系统并没有进行打印,直到循环到最后一个的时候才开始打印,并且打印的是循环的最后一个pdf文档。这是什么原因?请教达人!!! --------------------编程问答-------------------- 关注,up --------------------编程问答--------------------  我使用了命令行,问题只有一个:会弹出Adobe Reader程序窗口,没办法关!

      STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
si.dwX = si.dwY = 10000;
si.dwXSize = si.dwYSize = 0;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
ZeroMemory( &pi, sizeof(pi) );
//print by command line
CString strCommand(_T(""));
if(!bShowDlg)
strCommand.Format(_T("\"%s\" /p /h \"%s\""), strAdobeReader, strPdfFile);
else
strCommand.Format(_T("\"%s\" /p \"%s\""), strAdobeReader, strPdfFile);

// Start the child process. 
if( !CreateProcess(NULL,   // No module name (use command line).  LPTSTR( LPCTSTR(strCommand) ), // Command line.  NULL,             // Process handle not inheritable.  NULL,             // Thread handle not inheritable.  FALSE,            // Set handle inheritance to FALSE.  0,                // No creation flags.  NULL,             // Use parent's environment block.  NULL,             // Use parent's starting directory.  &si,              // Pointer to STARTUPINFO structure. &pi )             // Pointer to PROCESS_INFORMATION structure. ) 
{
return FALSE;
}

        //本来应该在这里等待打印结束,然后结束进程的!但是不知道它什么时候能打完!!
//let the process running there, need user to close it
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

等待高手指点。。。。
http://heygirl-bulage.taobao.com/


--------------------编程问答--------------------
引用 6 楼 young_hsu 的回复:
我使用了adobe reader activeX组件实现的不打开PDF文档对PDF文件进行打印
现在存在2个问题,1.不能实现批量打印;2、该组件不能实现对打印机设置的修改(如选择打印机 选择纸张类型)
请各位达人多多指教 急!!!


PrintAll是不等打印开始就返回的,用循环的话,可能循环结束了打印还没开始,到打印被启动起来时可能已经是打开了最后一个文件了,所以你看到的结果就是只打印最后一个PDF文件了。

我最近也在研究这个问题。http://heygirl-bulage.taobao.com/ --------------------编程问答--------------------
引用 7 楼 young_hsu 的回复:
我现在要打印多份pdf文件,要一起打印,中间不间断,于是我就用了一个循环来做,先用插件的loadFile方法 把文件加载,然后就调用PrintAll方法打印,然后loadFile下一个pdf 文件,再PrintAll,这样一直循环到所有的pdf 文件打印完成,但问题是每调用一次PrintAll方法 系统并没有进行打印,直到循环到最后一个的时候才开始打印,并且打印的是循环的最后一个pdf文档。这是什……


刚才那个引用错了,应该是引用7 楼, 从发一下

PrintAll是不等打印开始就返回的,用循环的话,可能循环结束了打印还没开始,到打印被启动起来时可能已经是打开了最后一个文件了,所以你看到的结果就是只打印最后一个PDF文件了。

我最近也在研究这个问题。http://heygirl-bulage.taobao.com/
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,