Печать текста в альбомной ориентации через блокнот - PullRequest
0 голосов
/ 10 июня 2009

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

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

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

Ответы [ 3 ]

1 голос
/ 11 июня 2009

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

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

0 голосов
/ 10 июня 2009

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

http://torisugari.googlepages.com/commandlineprint2

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

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

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

0 голосов
/ 10 июня 2009

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

notepad /p

отличался от

notepad /P

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

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

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

...