我正在尝试在Windows上进行一些基于文本的打印。我的程序使用Windows的“notepad /p file.txt
”功能,在默认打印机上打印文本文件。
问题在于您不能说要以横向而非纵向进行打印。以同样的方式,无法打印到另一台打印机。
关于此的一些背景信息:我正在打印Tcl / Tk程序(参见The Tcl'ers wiki on text printing)。我可以使用GDI进行打印,但由于某些原因这太慢了,我想提供文本打印作为快速替代方法,因为打印到文本文件已经可用。
答案 0 :(得分:1)
您可以尝试这个免费软件程序。这很有用。
http://home.swipnet.se/~w-62144/prfile/descr.htm
为某些文本打开打印机对话框,请执行以下操作
set fd [open "|PrFile32.exe /-"]
set str "This is my long peice of text I want to write out to..."
puts $fd $str
flush $fd
如果您无法使用可执行文件,请使用printui.dll。 您必须枚举机器上的打印机,然后传递您要使用的打印机的字符串
以下内容将显示特定打印机的打印权限对话框
rundll32.exe printui.dll,PrintUIEntry /e /u /n "Adobe PDF"
然后你可以打电话
notepad.exe /p filename.txt
我认为免费软件路由更容易,因为您不需要发现默认打印机,询问用户并以非标准方式打印文件。
编辑我忘了添加rundll32.exe部分以显示打印机首选项
答案 1 :(得分:0)
在搜索Google之后,似乎没有其他命令行选项用于记事本。此外,print
命令似乎不采用横向打印的备用选项。我原本希望
notepad /p
与
不同notepad /P
(首都'P')但显然不是,所以看起来你运气不好。我能想到的唯一建议是看是否有办法从命令行设置打印默认值,然后再切换回来。我不知道这是否可行。
编辑1:可能有用的东西:http://www.robvanderwoude.com/2kprintcontrol.php。
编辑2:看起来这不会控制打印首选项,只控制打印机本身,所以你必须找到另一种方法。
答案 2 :(得分:0)
可以帮助你的东西:
http://torisugari.googlepages.com/commandlineprint2
允许命令行打印的Firefox扩展程序。它似乎不支持传递方向参数,但我想可以添加对它的支持。
修改的 我刚刚重新阅读了扩展页面:它使用了用户配置文件的默认首选项,因此如果您将其设置为默认情况下使用横向打印,则扩展程序应该遵循该设置。
当然,此选项会强制您的用户同时安装Firefox和此扩展程序。 可能不是最好的选择...