2010-02-12 66 views
5

我使用Windows批處理文件和Windows圖片和傳真查看器的命令行界面自動執行jpg文件的打印。我在.bat中使用的命令是:如何使用Windows圖片和傳真查看器(shimgvw.dll)從命令行打印jpgs時選擇佈局?

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?

我找不到命令行parms或這些dll的註冊表設置

+0

如果有另一種方法只使用標準的WinXP組件來從命令行打印jpgs,我願意提供建議。 – user206481 2010-02-12 16:14:15

回答

2

壞消息:即使使用VBS,也無法做到這一點,我提取了所有的字符串,並在網絡上進行了重要的搜索,以便控制這個.dll,並且只有兩個基本的存在:

​​

將打印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中的過程,但這不是一個理想的解決方案。

+1

感謝您的幫助! – user206481 2013-03-05 22:56:53

相關問題