通过记事本在景观中打印文本

时间:2009-06-10 19:03:39

标签: windows printing tcl text-files

我正在尝试在Windows上进行一些基于文本的打印。我的程序使用Windows的“notepad /p file.txt”功能,在默认打印机上打印文本文件。

问题在于您不能说要以横向而非纵向进行打印。以同样的方式,无法打印到另一台打印机。

关于此的一些背景信息:我正在打印Tcl / Tk程序(参见The Tcl'ers wiki on text printing)。我可以使用GDI进行打印,但由于某些原因这太慢了,我想提供文本打印作为快速替代方法,因为打印到文本文件已经可用。

3 个答案:

答案 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和此扩展程序。 可能不是最好的选择...