Печать текста в альбомной ориентации через блокнот

Я пытаюсь выполнить текстовую печать в Windows. Моя программа использует функциональность Windows "notepad /p file.txt", которая печатает текстовый файл на принтере по умолчанию.

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

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


person Roalt    schedule 10.06.2009    source источник


Ответы (3)


Вы можете попробовать эту бесплатную программу. Это полезно.

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, чтобы открыть настройки принтера.

person Byron Whitlock    schedule 10.06.2009
comment
Я думаю, что PRFile выглядит наиболее многообещающим, хотя я должен доставить PRFILE32.exe вместе с моей программой. Однако у меня уже есть внутренний запросчик печати, поэтому я уже знаю, хочу ли я печатать в альбомной или портретной ориентации. - person Roalt; 11.06.2009

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

http://torisugari.googlepages.com/commandlineprint2

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

РЕДАКТИРОВАТЬ Я просто перечитал страницу расширения: она использует настройки профиля пользователя по умолчанию, поэтому, если вы настроили для нее альбомную печать по умолчанию, расширение должно учитывать эту настройку.

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

person yop83    schedule 10.06.2009

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

notepad /p

отличался от

notepad /P

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

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

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

person Topher Fangio    schedule 10.06.2009