Проблема с печатью больших изображений
alexghaash
Йошкар-Ола
Возник вопрос: каким образом печатать картинку, которая по высоте не помещается на один лист отчета(длинная диаграмма)?
Поскольку автоматически она FastReport-ом не разбивается, даже при включенном AllowSplit (начинается бесконечная генерация страниц, пока не закончится память(в техподдержке уже 2 недели мне не отвечают почему то и этот баг, тянущийся с 3-й версии не правят).
Пока я использовал 2 решения:
1) Предварительное разбиение картинки на несколько частей, каждая по размеру листа, последняя часть - остаток и печать
частей через UserDataSet.
Недостаток: 1 лист включает в себя заголовок и далее идет пустое место. Картинка начинается с нового листа, а на последнем листе остается хвост в виде остатка картинки и опять же пустого места ниже, что ведет к лишнему расходу бумаги. Хотелось бы чтобы на первом листе была часть картинки, которая на него поместится, в т.с. на 1 лист расход бумаги меньше. Высота свободного пространства на первом листе мне заранее неизвестна(там много вариантов настройки отчета и вставка произвольного RTF из файла).
2) Предварительное разбиение картинки на много частей, каждая очень малая по высоте (1-3 см) , и дальнейшая печать через UserDataSet.
Бумага экономится, но имеется другое но: При экспорте в RTF, PDF при просмотре и печати на картинке возникают горизонтальные разрывы. Если в PDF они едва заметны, то в RTF в 2-3 пиксела.
Поскольку автоматически она FastReport-ом не разбивается, даже при включенном AllowSplit (начинается бесконечная генерация страниц, пока не закончится память(в техподдержке уже 2 недели мне не отвечают почему то и этот баг, тянущийся с 3-й версии не правят).
Пока я использовал 2 решения:
1) Предварительное разбиение картинки на несколько частей, каждая по размеру листа, последняя часть - остаток и печать
частей через UserDataSet.
Недостаток: 1 лист включает в себя заголовок и далее идет пустое место. Картинка начинается с нового листа, а на последнем листе остается хвост в виде остатка картинки и опять же пустого места ниже, что ведет к лишнему расходу бумаги. Хотелось бы чтобы на первом листе была часть картинки, которая на него поместится, в т.с. на 1 лист расход бумаги меньше. Высота свободного пространства на первом листе мне заранее неизвестна(там много вариантов настройки отчета и вставка произвольного RTF из файла).
2) Предварительное разбиение картинки на много частей, каждая очень малая по высоте (1-3 см) , и дальнейшая печать через UserDataSet.
Бумага экономится, но имеется другое но: При экспорте в RTF, PDF при просмотре и печати на картинке возникают горизонтальные разрывы. Если в PDF они едва заметны, то в RTF в 2-3 пиксела.
Комментарии
1. Помещаем picture object под заголовком листа отчета (на сам отчет а не на master data), выбираем рисунок, делаем autosize;
2. Два раза щелкаем на свободном месте отчета и в page options вручную устанавливаем значение page height (напр. 140 см) - так, чтобы уместился весь наш рисунок.
3. Выводим на предпросмотр и печать, указав в настройках принтера что надо разбить большую страницу на куски формата А4.
Получается приемлемо.
Увы, не подойдет. Во первых нужна нумерация страниц(печатаются диаграммы длинной от 10 см до 2.5 метров), а в т.с. ее не будет.
Во вторых научить теток-юзеров на десятках предприятий ставить галочку в настройках их принтера нереально(к тому же они все разных моделей).
В третьих большая часть отчетов печатается вообще автоматом или сериями, без выбора принтера и предпросмотра.
В общем пока надежда на то что разработчики сделают корректный Split или изобретать какой то шаманский метод.
Ну что ж, в любом случае согласен с тем, что полностью работающее приложение лучше любых шаманских методов Ждем поправок.