Конференция "Прочее" » печать в виндовс ХП [D6, WinXP]
 
  • vaz_mz © (07.01.11 10:49) [0]
    Дело в том, что для Windows все принтеры - страничные. А у меня стоит задача обеспечить печать 10 метровых непрерывных(без разрывов) графиков.

    из под доса, на старом программном обеспечении, на матричных эпсонах  - все печатется прекрасно. и пользователю не обьяснишь что в Windows XP ВСЕ ПРИНТЕРЫ - страничные.

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

    может уже кто бодался с этой проблемой?
  • CrytoGen (07.01.11 10:58) [1]
    Попробуйте напрямую посылать команды принтеру, те же что из под доса слали. примерно так :
    procedure WriteRawStringToPrinter(PrinterName,Title:String; S:String);
    var
     Handle : THandle;
     N      : DWORD;
    begin
     Handle:=PrepareWriteToPrinter(PrinterName,Title);
     if Handle<>0 then
     begin

        while Length(s)>0 do
        begin
          if Length(s)>200 then
          begin
            WritePrinter(Handle, PChar(Copy(S,1,200)), 200, N);
            Delete(s,1,200);
          end
          else
          begin
            WritePrinter(Handle, PChar(S), Length(S), N);
            s:='';
          end;
        end;

       FinishWriteToPrinter(Handle);
     end;  
    end;



    PCL таким образом вполне себе отправлялся. Написано чуть кривовато, но коли будет нужда, думаю исправите.
  • vaz_mz © (07.01.11 11:08) [2]
    Спасибо попробую!

    маленькое дополнение. считаем что LPT порт ушел в небытие вместе с досом:-) и это факт кстати. ноутбуков у нас с ЛПТ уже не найти новых:-)

    и еще как этим методом отправить на печать битмап?
  • Anatoly Podgoretsky © (07.01.11 11:12) [3]
    У Эпсона нет ограничение, если специально не включать деление на листы и пропуск для обрезки.

    В Виндоус все принтеры также рулонные, а деление на страницы это функции спуллера, так что если печатать мимо спуллера, то и страниц не будет.
  • Anatoly Podgoretsky © (07.01.11 11:14) [4]

    > vaz_mz ©   (07.01.11 11:08) [2]

    Совсем ни к чему печатать в порт, достаточно печатать на физическое устройства, как файл.
  • vaz_mz © (07.01.11 11:18) [5]

    > У Эпсона нет ограничение, если специально не включать деление
    > на листы и пропуск для обрезки.

    1. каким образом я это ключаю?
    2. ИМХО - нет, я ходил с этим на фирменный сайт эпсона. там четко написано если размеры больше зашитых в ДРАЙВЕРЕ - то принтерс ними работать не будет.

    если Вас незатруднит, приведите пример: каким образом печатать мимо спулера, используя стандартный класс Tprinter?

    причем чтобы печатать на любых принтерах, а не на каком то одном определенном?
  • Anatoly Podgoretsky © (07.01.11 11:46) [6]
    > vaz_mz  (07.01.2011 11:18:05)  [5]

    Печатай в текстовый файл.
  • vaz_mz © (07.01.11 12:21) [7]

    > Печатай в текстовый файл.


    битмап? на любой принтер?
  • Anatoly Podgoretsky © (07.01.11 12:34) [8]
    > vaz_mz  (07.01.2011 12:21:07)  [7]

    Для печати битмапов нужно знать систему команд.
    Только вот откуда вдруг взялся битмап, на седьмом шаге обсуждения.
    Тогда будь добр огласи весь список.
  • Anatoly Podgoretsky © (07.01.11 12:36) [9]
    Хотя если умели печатать из под доса, то в чем проблема из под Виндоус, посылайте теже команды в принтер.
  • vaz_mz © (07.01.11 12:52) [10]
    Удалено модератором
    Примечание: Обсуждение модерирования
  • vaz_mz © (07.01.11 13:47) [11]
    повторюсь раз затерли:


    > Для печати битмапов нужно знать систему команд.
    > Только вот откуда вдруг взялся битмап, на седьмом шаге обсуждения.
    >
    > Тогда будь добр огласи весь список.


    _изначально_ и вопрос был задан про возможность непрерывной печати графиков работая через стандартные средства доступные в windows xp.


    > Хотя если умели печатать из под доса, то в чем проблема
    > из под Виндоус, посылайте теже команды в принтер.


    1. отсутсвуют исходники.
    2.  там реализована печать только на матричные эпсоны подключенные к ЛПТ. а это частный случай. мне нужно решение работающее на любом принтере который подключен с помощью драйверов производителя к компьютеру под управлением Windows XP.

    сформулирую задачу по другому мож так понятней:
    проблема в том что нужно обеспечить приложению возможность рулонной, непрерывной печати графиков на любом принтере подключенному к Windows XP.
  • vaz_mz © (07.01.11 13:52) [12]
    Удалено модератором
    Примечание: Обсуждение модерирования
 
Конференция "Прочее" » печать в виндовс ХП [D6, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]