2009-06-10 2 views
0

Я пытаюсь сделать текстовую печать на Windows. В моей программе используется функция «notepad /p file.txt», которая печатает текстовый файл на принтере по умолчанию.Печать текста в ландшафте через блокнот

Проблема заключается в том, что вы не можете сказать, что вы хотите напечатать в пейзаже вместо портрета. Точно так же невозможно печатать на другом принтере.

Некоторая справочная информация по этому вопросу: Я распечатываю программу Tcl/Tk (см. The Tcl'ers wiki on text printing). Я могу печатать с помощью GDI, но по какой-то причине это слишком медленно, и я хочу предложить текстовую печать в качестве быстрой альтернативы, поскольку печать в текстовый файл уже доступна.

ответ

0

После поиска в Google, похоже, что нет других параметров командной строки для блокнота. Кроме того, команда print, похоже, не использует альтернативные варианты для альбомной печати. Я надеялся, что

notepad /p 

отличалась

notepad /P 

(заглавная «P»), но, видимо, не так это выглядит, как будто вы не повезло. Единственное предложение, которое я могу придумать, - посмотреть, есть ли способ установить значения по умолчанию для печати из командной строки, а затем переключить их обратно. Я понятия не имею, возможно ли это.

Редактировать 1: Что-то, что МОЖЕТ помочь: http://www.robvanderwoude.com/2kprintcontrol.php.

Редакция 2: Похоже, что это не будет контролировать настройки печати, только сами принтеры, поэтому вам придется найти другой метод.

0

то, что может помочь вам:

http://torisugari.googlepages.com/commandlineprint2

Расширение Firefox, который позволяет печатать из командной строки. Кажется, он не поддерживает передающий параметр ориентации, но я предполагаю, что можно будет добавить поддержку для него.

EDIT Я просто перечитать страницу расширения: он использует параметр по умолчанию в профиле пользователя, поэтому, если вы установите его как имеющий пейзаж печать по умолчанию расширение должно соблюдать эту настройку.

Конечно, этот параметр заставит ваших пользователей установить Firefox и это расширение. Возможно, не лучший выбор ...

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. Вы должны перечислить принтеры на машине, а затем передать строку принтера, который вы хотите использовать

Следующие покажет perferences диалог печати для конкретного принтера

rundll32.exe printui.dll,PrintUIEntry /e /u /n "Adobe PDF" 

Вы могли бы назвать

notepad.exe /p filename.txt 

Я думаю, что бесплатное программное обеспечение маршрут намного проще, так как вам не нужно, чтобы открыть принтер по умолчанию, попросите пользователя и распечатать файл в нестандартном пути.

EDIT Я забыл добавить rundll32.exe часть, чтобы вызвать настройки принтера

+0

Я думаю, что PRFile выглядит наиболее перспективным, хотя, что я должен поставить PRFILE32.exe вместе с моей программой. Тем не менее, у меня уже есть внутренний запрос на печать, поэтому я уже знаю, хочу ли я печатать в ландшафте или в портрете. – Roalt