Printing 使用Windows图片和传真查看器(shimgvw.dll)从命令行打印JPG时,如何选择布局?

Printing 使用Windows图片和传真查看器(shimgvw.dll)从命令行打印JPG时,如何选择布局?,printing,windows-xp,batch-file,Printing,Windows Xp,Batch File,我正在使用windows批处理文件和windows图片和传真查看器的命令行界面自动打印jpg文件。我在.bat中使用的命令是: rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt "%fullpath_to_jpg%" "%printer_name%" 我的照片打印机可以打印4x6张照片。如果jpg文件的纵横比正好是4x6,那么一切都很好,我得到了一个全出血4x6打印。如果不是,我会得到一个我不想要的白色边框。在

我正在使用windows批处理文件和windows图片和传真查看器的命令行界面自动打印jpg文件。我在.bat中使用的命令是:

rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo /pt "%fullpath_to_jpg%" "%printer_name%"
我的照片打印机可以打印4x6张照片。如果jpg文件的纵横比正好是4x6,那么一切都很好,我得到了一个全出血4x6打印。如果不是,我会得到一个我不想要的白色边框。在Windows资源管理器中,我可以右键单击非4x6 jpg并选择“打印”以调用照片打印向导,选择“整页照片打印”,然后它将裁剪为我想要的全出血4x6打印

如何从命令行中指定“整页照片打印”布局选择,以告知shimgvw.dll“裁剪并旋转以适合”而不是“居中并旋转以适合”?是否有注册表设置来选择此作为默认布局而不是“整页传真打印”?我是否应该使用photowiz.dll而不是shimgvw.dll


我找不到这些dll的命令行参数或注册表设置的参考。

坏消息:即使使用VBS,也无法做到这一点。我提取了所有字符串,并在web上进行了大量搜索,寻找控制此.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中的进程,但这不是一个理想的解决方案。

如果存在另一种只使用标准WinXP组件从命令行打印JPG的方法,我愿意接受建议。