Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите где ошибка. Печать картинок 
:(
    Опции темы
Sponger
Дата 31.5.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Код

procedure TFMain.Printselectedphoto1Click(Sender: TObject);
var i, j, k, m, n : integer;
    iLeft, iTop, iRight, iBottom : integer;
begin
  Printer.Orientation := poLandscape;
  if PrinterSetupDialog1.Execute then begin
    with Printer do begin
      BeginDoc;
      n := length(aTImage) div 3;
      if length(aTImage) mod 3 > 0 then inc(n);
      m := 3; k := 0;
      for i := 1 to n do // n - коичество картнок по вертикали в одном столбце.
        for j := 1 to m do  // m - количество картнок по горизонтали в одной строке.
          if k < length(aTImage) then begin
            TJPEGImage(aTImage[k].Picture.Graphic).Scale := jsFullSize;
            TJPEGImage(aTImage[k].Picture.Graphic).Performance := jpBestSpeed;

            iLeft := 20 + round((PageWidth * (j - 1) / m));
            iTop := 20 + round((PageHeight * (i - 1) / n));

            if aTImage[k].Picture.Graphic.Width > aTImage[k].Picture.Graphic.Height then begin
              iRight := round((PageWidth * j / m)) - 80;
              iBottom := round(iTop + ((iRight - iLeft) / 1.33)) - 60;
            end
            else begin
              iBottom := round((PageHeight * i / n)) - 60;
              iRight := round(iLeft + ((iBottom - iTop) / 1.33)) - 80;
            end;
            Canvas.StretchDraw(Rect(iLeft, iTop, iRight, iBottom), aTImage[k].Picture.Graphic);
            TJPEGImage(aTImage[k].Picture.Graphic).Scale := jsEighth;
            inc(k);
          end;
      EndDoc;
    end;
  end;
end;


aTImage - public массив TImage, все картинки размером 1024*768 или 768*1024

На принтер печатает в шахматном порядке. Если вывожу в файл (на Microsoft Office Document Image Writer) то все нормально.

Где собака порылась?     

Это сообщение отредактировал(а) Sponger - 31.5.2006, 12:49
PM MAIL   Вверх
Sponger
Дата 1.6.2006, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Почему-то игнорируют. Посмотрите код, где ошибка. 
PM MAIL   Вверх
Sponger
Дата 1.6.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Люди помогите. Надо очень. А сам не могу допереть. 
И масштаб и размер все менял, а все равно выводится на принтер в шахматном порядке, т.е. из 6 картинок выводит 3, а на месте оставшихся 3 пусто, соответственно из 9 показывает 5 и т.д. 
PM MAIL   Вверх
Sponger
Дата 2.6.2006, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Вроде бы локализовал ошибку но не могу понять почему так.

Код

TJPEGImage(aTImage[k].Picture.Graphic).Scale := jsFullSize;


Если эту строчку меняю jsFullSize на jsHalf - то не печатается один столбец.
Если меняю jsFullSize на jsEighth - печатается все, но с отвратительным качеством.

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

ps Картинки который печатаю *.jpg
 

Это сообщение отредактировал(а) Sponger - 2.6.2006, 06:06
PM MAIL   Вверх
skyboy
Дата 2.6.2006, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



А зачем ты сначала делаешь FullSize, а потом Eight?
Проблема точно - не в драйвере принтера? Сам ведь говоришь:
Цитата(Sponger @  31.5.2006,  12:45 Найти цитируемый пост)
Если вывожу в файл (на Microsoft Office Document Image Writer) то все нормально.

 
PM MAIL   Вверх
Sponger
Дата 2.6.2006, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Картинка отображена на экране. Поэтому сперва делаю Fullsize чтобы печаталось оптимальное качество, а потом обратно возвращаю.

В чем разница между Microsoft Office Document Image Writer и реальным принтером? 
И на тот и на тот картинка 300DPI идет. Т.е. размер Canvas одинаковый.
Ведь если печатаю файл который получился после печати на виртуальный принтер, распечатывается нормально. 
PM MAIL   Вверх
skyboy
Дата 2.6.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Sponger, я и говорю, что принципиальной разницы нет  - и то, и то воспринимается системой как самый обычный принтер(если соврал, меня поправят ;)), потому если на что-то идёт нормально,а на что-то нет, то баг, вероятней всего, не в механизме передачи,а в этом "чём-то". На других компах/принтерах пробовал? 
PM MAIL   Вверх
Sponger
Дата 2.6.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 14.2.2006

Репутация: нет
Всего: нет



Пробовал на 2-х принтерах, лазерниках, и 2-х компах 
Других в моих пределах нет.

Дык я и спрашиваю в чем баг. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2794 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.