LazReport

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

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

Re: LazReport

Сообщение java73 » 27.07.2015 13:11:55

Проблема с экспортом в PDF через CAIRO решилась: поле Picture без картинки грохает программу с ошибкой. Поэтому если в базе нет картинки, я гружу картинку с изображением "нет изображения" и все нормально потом происходит дальше.

Кстати, никто не решил проблему с крупными шрифтами при экспорте cairo? Из-за шрифта текст залезает друг на друга... А текст динамически у меня собирается, я не могу заранее перевод строки расставить((
java73
постоялец
 
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Re: LazReport

Сообщение slyubez » 29.09.2015 15:01:33

Господа, нужна помощь. Для работы с lrCodeReport мне понадобилось установить пакет Cairo, после чего Лазарь перестал запускаться - ругается на отсутствие разных DLL. Найдешь одну, пихнешь в каталог Лазаря - всё равно не пускается, мол, подай ему другую DLL. Наконец, остановился на либе с загадочным названием z.dll - нигде найти не могу. Может быть, подскажете, как правильно устанавливать такие пакеты?
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение alexs » 29.09.2015 15:28:22

http://w7site.ru/fpc/fbm/fbmanager-win3 ... 52.tar.bz2
В папке DLL все что нужно для работы cairo в win32
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение slyubez » 30.09.2015 20:19:35

alexs, большое спасибо. Жалко что этих либ нет в поставке Лазаря под форточки.
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение slyubez » 07.10.2015 21:03:04

Вроде в целом разобрался с динамическим формированием отчета. Теперь могу обойтись без компонента lrCodeReport. Сейчас, занимаясь переделкой своего модуля с FR, наткнулся на еще один камень. Свойство Angle у TfrMemoView почему-то сделано типом byte, что не позволяет повернуть текст на 270 градусов - в моих программах этот угол применяется очень часто. Хочу сейчас поковырять исходники LR и подумать, что можно такое придумать. Однозначно понадобится менять тип свойства, а также искать, где и как там что отрисовывается. Можно, конечно, и с канвой поиграться, рисуя текст самому.
Нужен еще такой совет. Мне нужно вычислять ширину текста в объекте "Текст" для последующего автоуменьшения размера шрифта. Как лучше делать такие вещи?
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение alexs » 08.10.2015 12:14:31

slyubez писал(а):Свойство Angle у TfrMemoView почему-то сделано типом byte, что не позволяет повернуть текст на 270 градусов

Это в принципе косяк. Надо в мантис запостить.
slyubez писал(а):Мне нужно вычислять ширину текста в объекте "Текст" для последующего автоуменьшения размера шрифта. Как лучше делать такие вещи?

А в чём сложность? На канвасе расчитать ширину текста... Главное знать параметры шрифта.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение slyubez » 08.10.2015 16:54:31

Это в принципе косяк. Надо в мантис запостить.

Если Вам не трудно - прошу запостить. У меня никак не проходит регистрация на багтрекере.

А в чём сложность? На канвасе расчитать ширину текста... Главное знать параметры шрифта.

То есть: мне надо взять канву страницы, задать ей фонт и воспользоваться функцией TextWidth? Так?
На Дельфи я использовал костыль: кидал на форму невидимый TLabel, задавал ему AutoSize и нужный шрифт, и при установке Caption этот Label у меня автоматом растягивался, после чего я вытаскивал его Width. В LCL такое не катит.
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение alexs » 09.10.2015 14:38:10

slyubez писал(а):То есть: мне надо взять канву страницы, задать ей фонт и воспользоваться функцией TextWidth? Так?

Да

Добавлено спустя 17 минут 7 секунд:
slyubez писал(а):TfrMemoView почему-то сделано типом byte, что не позволяет повернуть текст на 270 градусов


Сейчас пересмотрел код. Там в принципе эта операция не получится. Мемо умеет себя рисовать либо горизонтально либо на с поворотом на 90 градусов. По другому никак. Тут надо хорошо доработать метод вывода текста.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение slyubez » 09.10.2015 16:00:16

alexs, спасибо. Сделал так. Сорцы тоже посмотрел и пришёл к такому же выводу. Если нетрудно, Вы не могли бы подсказать, в каком из модулей LR реализована именно отрисовка мемо под 0 и 90 градусов? Хочу попробовать поковырять - вдруг получится. Где находятся GetAngle и SetAngle, я уже нашел. А вот отрисовку на странице никак не найду.
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение alexs » 09.10.2015 20:56:35

slyubez писал(а):в каком из модулей LR реализована именно отрисовка мемо под 0 и 90 градусов?

Код: Выделить всё
unit LR_Class;
...
procedure TfrCustomMemoView.ShowMemo;
...
    if Angle <> 0 then
      OutMemo90
    else
      OutMemo;
...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение *Rik* » 01.07.2016 12:50:56

Нужна помощь по Lazreport. Проблема в следующем: на основе lazbarcodes сделал обертку для Lazreport для печати матричных 2d штрихкодов. На принтере печатается, проблема с экспортом в PDF, вместо штрихкода черное пятно. Я не селен в особенностях Lazreport, делал как говорится с божьей помощью по аналогии с frBarCodeObject, но последний экспортируется в PDF без проблем. Даже если я в методе Draw отключаю вывод штрихкода, всеравно черное пятно, т.е. проблема не в штрихкоде а в том что я видимо не умею "готовить" компонент под Lazreport. Времени разбираться нет, может кто-нибудь помочь?

Комопнент:
http://visual-t.ru/files/lrbarcode2d.zip
Тестовое приложение:
http://visual-t.ru/files/lr_datamatrix.zip
Сперва нужно установить lazbarcodes из lazarus_ccr, затем lrbarcode2d. После можно запускать тестовое приложение.
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LazReport

Сообщение alexs » 01.07.2016 14:40:30

А какой экспортер в PDF?
cairoPdf нормально работает
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение *Rik* » 01.07.2016 14:52:25

alexs писал(а):А какой экспортер в PDF?
cairoPdf нормально работает

Да cairoPdf, под Linux (XFCE) и Win одинаково, черное пятно на месте контрола при экспорте... И дома и на работе пробовал..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LazReport

Сообщение alexs » 01.07.2016 14:56:15

Нормально экспортится.
Linux alexs.optorg.local 4.5.7-200.fc23.x86_64 #1 SMP Wed Jun 8 17:41:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Lazarus 1.7 r52481:52590M FPC 3.1.1 x86_64-linux-gtk 2
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение *Rik* » 01.07.2016 16:01:53

alexs писал(а):Нормально экспортится.
Linux alexs.optorg.local 4.5.7-200.fc23.x86_64 #1 SMP Wed Jun 8 17:41:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Lazarus 1.7 r52481:52590M FPC 3.1.1 x86_64-linux-gtk 2

Странно, а у меня вот такая фигня:
http://visual-t.ru/files/22.pdf
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Пред.След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru