Ошибка при печати в HTMLView

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Ошибка при печати в HTMLView

Сообщение Vadim » 30.05.2015 06:58:36

И ещё. Если распечатывать нужно не более одной-двух страниц в документе, то можно воспользоваться самым обычным браузером и его средствами печати. Я в своих программах так и делаю.
1. Формирую необходимый HTML-документ;
2. Открываю его браузером:
Код: Выделить всё
OpenDocument('Документ.html');

После открытия документа браузером по умолчанию, пользователь его разглядывает и печатает, если всё правильно.
Vadim
долгожитель
 
Сообщения: 3661
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Ошибка при печати в HTMLView

Сообщение java73 » 09.06.2015 22:38:58

HTMLViewer под линуксом вообще не компилится, там куча, связанного с виндовз, начиная от типов данных и заканчиая ссылками на dll.
Кароче, буду выпиливать всё из проекта, т.к. LazReport вроде пошёл нормально)
java73
постоялец
 
Сообщения: 236
Зарегистрирован: 21.11.2013 09:08:10

Re: Ошибка при печати в HTMLView

Сообщение sign » 30.07.2019 08:25:26

Нужно было распечатать документ из HTMLView.
Написал классическое:

Код: Выделить всё
  PrintDialog1.Copies := 1;
  if PrintDialog1.Execute then begin
    HtmlViewer1.OpenPrint;
    HtmlViewer1.Print;
    HtmlViewer1.ClosePrint;
  end;


А фиг вам. Вылет.
Что за нафиг!
Полез проходить по коду.

Проблема оказалась в procedure TvwPrinter.SetState(Value: TvwPrinterState);
Вылет происходил в первой строчке этого списка присваиваний:
Код: Выделить всё
    StrCopy(Device, PWideChar(PrnDev.Device));
    StrCopy(Driver, PWideChar(PrnDev.Driver));
    StrCopy(Port, PWideChar(PrnDev.Port));


Сделал замену:
Код: Выделить всё
      Device := StringToOleStr(PrnDev.Device);
      Driver := StringToOleStr(PrnDev.Driver);
      Port   := StringToOleStr(PrnDev.Port);

Замена дала результат. Всё заработало, как часы!
sign
энтузиаст
 
Сообщения: 1101
Зарегистрирован: 30.08.2009 09:20:53

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 5

Рейтинг@Mail.ru