我正在使用windows批处理文件和Windows图片和传真查看器的命令行界面自动打印jpg文件。我在.bat中使用的命令是:
rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt "%fullpath_to_jpg%" "%printer_name%"我的照片打印机可以打印4x6的照片。如果jpg文件恰好是4x6宽高比,那么一切都可以正常工作,并且我会得到一个完全出血的4x6打印。如果不是,我会得到一个我不想要的白色边框。在Windows资源管理器中,我可以右击非4x6jpg并选择打印,以调用照片打印向导,选择“全页照片打印”,它将裁剪给我我想要的全血4x6打印。
如何从命令行指定“全页照片打印”布局选择,以告知shimgvw.dll“裁剪和旋转以适合”而不是“居中和旋转以适合”?是否有注册表设置以选择此作为默认布局,而不是“整页传真打印?我是否应该使用photowiz.dll而不是shimgvw.dll?”
我找不到这些dll的命令行参数或注册表设置的引用。
发布于 2013-03-01 15:15:49
坏消息是:即使使用VBS,也无法做到这一点。我提取了所有的字符串,并在网络上进行了大量的搜索,找到了控制这个.dll的所有方法,只有两种基本的方法存在:
rundll32 shimgvw.dll,ImageView_Fullscreen c:\temp\grub.jpg将把grub.jpg打印到屏幕上
rundll32 shimgvw.dll,ImageView_PrintToW /pt c:\temp\grub.jpg "Microsoft XPS Document Writer"我会将grub.jpg打印到MS Office XPS打印机,但该打印机和PDF打印机将要求您选择一个文件名,因此无法以这种方式自动执行此操作
在XP中使用内置方法自动打印的唯一方法是使用SendKeys,但这是一个可怕的解决方案,因为用户输入的任何意外击键都会使输出与您想要的不同。当然,您总是可以启动隐藏在VBS中的进程,但这不是一个理想的解决方案。
https://stackoverflow.com/questions/2253162
复制相似问题