阅读:1913回复:4
如何获得打印文档的全路径名?
Hi, 各位达人,如题。
我已经翻了一遍以往的帖子,试了已给出的方法: 在OEMStartDoc函数中使用: JOB_INFO_1 *pJobinfo = NULL; DWORD cbBuf = 0; DWORD pcbNeed; char docname[256]; GetJob(pdevobj->hPrinter,dwJobId,1,(LPBYTE)pJobinfo,cbBuf,(LPDWORD)&pcbNeed); pJobinfo = (JOB_INFO_1 *) LocalAlloc(LPTR, pcbNeed); cbBuf = pcbNeed; GetJob(pdevobj->hPrinter,dwJobId,1,(LPBYTE)pJobinfo,cbBuf,(LPDWORD)&pcbNeed); WideCharToMultiByte(CP_OEMCP,0,pJobinfo->pDocument,-1,docname,256,NULL,FALSE); TERSE(UNITEXT("PrintDocName:%s.\r\n"),docname);//得到的是乱码 TERSE(UNITEXT("PrintDocName:%s.\r\n"),pJobinfo->pDocument);//得到的是Readme.txt - 记事本 TERSE(UNITEXT("PrintDocName:%s.\r\n"),pwszDocName);////得到的是Readme.txt - 记事本 我想得到的是诸如 c:\printDoc\Readme.txt一类的全路径名。 知道的,请告诉我不胜感激啊!!!! |
|
最新喜欢:xmuhl |
沙发#
发布于:2007-09-14 15:46
我看到hglzw 在http://bbs.driverdevelop.com/htm_data/71/0501/85649.html中的发言,能否现身指导一下,还有其他的大牛们,我在线等啊!谢谢了!
|
|
板凳#
发布于:2007-09-14 16:47
在驱动中,没办法保证你能获得完整路径。
驱动中的文档名是从应用程序中传过来的,一般是StartDoc函数中的DOCINFO参数,应用程序传递什么,你就只能得到什么,而且这个名称不一定就是文件名。 记事本只能得到文件名,金山WPS则可以得到完整路径,MS WORD我忘了,总之这和应用程序有关。 |
|
地板#
发布于:2007-09-14 17:46
谢谢您的回答!不过等于判了死刑啊!就没有一个比较好的方法在驱动中获得打印文件的全路径名吗?或者其他变通的方法?
|
|
地下室#
发布于:2007-09-14 20:43
比较难,你在应用程序里想想办法,打印时把完整路径传递给驱动
|
|