Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2012, 20:20   #1
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию проблема с печатью в формате XPS

Использую такие компоненты как TdrawObject 2.3. Всё вывожу напечать следующим кодом
Код:
  Printer.Title := application.Title + ' document';
  Printer.Copies := PrintDialog1.Copies;
    begin
  try
  Printer.BeginDoc;
         destRec := Rect(0, 0,
        (fMf.Width  div screen.PixelsPerInch* fPtrPPI.cx-100),
        (fMf.Height  div screen.PixelsPerInch* fPtrPPI.cy-100)); // расчёт области на печать
    for i:=0 to kx-2 do
      begin
       for j:=0 to ky-1 do
         begin
          printer.Canvas.StretchDraw(destrec,fmf);
          printer.NewPage;
          OffsetRect(destRec,
            0,
            -round((printer.PageHeight-200))); //смещение по у        
         end;
         destRec := Rect(0, 0,
        (fMf.Width  div screen.PixelsPerInch* fPtrPPI.cx-100),
        (fMf.Height  div screen.PixelsPerInch* fPtrPPI.cy-100));
        OffsetRect(destRec,                  // смещение по х
            -round((printer.PageWidth-200)*(i+1)),
            0);
      end;
  finally
  Printer.EndDoc;
  end;
где fmf это TMetafile. То есть в метафайле хранится изображение автоматически создаваемое с помощью библиотеки ТDrawObject. при сохранении его в файл всё происходит ровно, рисунок как надо, то есть тот который создали. Но при печати на виртуальном принтере происходят странные вещи: я в данном коде делаю смещение и вывожу его на принтер. То есть одно изображение будет скажем на 24 листах А4. всё зависит от того как нанесёшь объекты. В некоторых случаях он сохраняет в xps файл правильно, а иногда сохраняет и сразу удаляет его. Народ может кто подскажет в чём проблема? как её решить?
Artempokrowski вне форума Ответить с цитированием
Старый 19.09.2012, 21:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
а иногда сохраняет и сразу удаляет его.
А точно удаляет?
Может просто сохраняет не там где ты его ожидаешь?
Антивирус не может распознавать его как опасный обьект? У меня бывали печати в виртуальные принтера, которые тревожили антивирусы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2012, 21:16   #3
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию

Нет все сохраняется в то место куда указываю. Иду по стоп отладке вижу как создает. Отслеживаю по циклу делает несколько страниц на принтер и удаляет файл. Антивирус не ругается. Стоит Касперский кристалл. Но если объекты вообще не добавлять то сохраняет нормально.
Artempokrowski вне форума Ответить с цитированием
Старый 19.09.2012, 21:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

В настройках самого XPS принтера не лазил?
Может там что-то есть?
Он вообще просмотр документа после формирования открывает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2012, 22:23   #5
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию

Лазил ставил разное качество печати, да открывает все нормально. Если все таки хоть формирует, то открывает.
Artempokrowski вне форума Ответить с цитированием
Старый 24.09.2012, 21:30   #6
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию

разобрался с проблемой. пришлось из метафайла переводить в битмап и после резать на страницы. из-за чего так не пойму, но возможно из-за того что часть объектов делились сразу на 2 страницы и обработать например такой текст возможно было нельзя. может конечно из=за чего нибудь ещё. но главное разобрался.
Artempokrowski вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с печатью Zakharyan Общие вопросы Delphi 3 09.08.2011 16:46
Проблема с печатью. Busine2009 Microsoft Office Word 1 26.07.2009 16:37
Проблема с печатью таблицы forrward Microsoft Office Excel 0 20.07.2009 14:41
Проблема с печатью в RichEdit Sanek777 Общие вопросы Delphi 2 28.09.2008 05:57
проблема с печатью Арман Общие вопросы Delphi 1 15.04.2007 16:43