Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   проблема с текстовыми полями при печати (http://www.flasher.ru/forum/showthread.php?t=112791)

mitado 07.06.2008 20:36

проблема с текстовыми полями при печати
 
Делаю версию для печати. Возник затык с текстовым полем:
тектсовые поля, облаченные в какой-либо Бокс, при выводе на печать теряют последнюю строчку.
Пример:
Код:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:Script><![CDATA[
            import mx.printing.*;
            public function doPrint():void {
                var printJob:FlexPrintJob = new FlexPrintJob();
                if(printJob.start()) {
                    printJob.addObject(prinntArea);
                    printJob.send();
                }
            }
    ]]></mx:Script>
    <mx:VBox id="prinntArea" >
            <mx:Text height="100%">
                    <mx:htmlText> <![CDATA[в рот
 мне
 ноги!]]></mx:htmlText>
                  </mx:Text>
    </mx:VBox>
    <mx:Button label="PRINT"  click="doPrint();" />
</mx:Application>

Нашел несколько вариантов обхода проблемы:
1. можно добавлять пустую строку в конце каждого поля - просто, но не очень красиво,
2. можно после инициализации, или перед отправкой на принтер увеличивать высоту текстового поля: txt.height= txt.textHeight+6; - лучше, но тоже не всегда универсально
3... есть ли лучше варианты?

mitado 09.06.2008 13:52

еще один вопрос - можно ли сделать так, чтобы в DataGrid автоматически показывались все строки, даже в случае, если они разной высоты?

ex.image 09.06.2008 14:12

по первому вопросу посмотрел да действительно интересная фигня ) можно попробовать использовать embed шрифты ... может полегчает )

а по второму вопросу что значит "показывались все строки"?

mitado 09.06.2008 15:42

по DataGrid - нужно вывести на печать все строки.
Но если строк много, то автоматом появляется вертикальная прокрутка и лишние строки скрываются. Нужно сделать так, чтобы прокрутка не появлялась, а увеличивалась высота самой таблички.

Насколько я понял, главный параметр для расчета высоты таблицы - rowCount,
но в виду того что в моем случае variableRowHeight="true" и wordWrap="true", знание количества строк нам ничего не дает, так как их высота не предсказуема.

скорее всего прийдется работать с обычным grid

ex.image 09.06.2008 17:18

можно еще заюзать DataGrid для печати, там можно сделать высоту и постраничный вывод если не влазит на лист

mitado 09.06.2008 18:30

в PrintDataGrid смущает ее страшный вид, а стилям она вроде как не поддается :(
буду пробовать.

ex.image 09.06.2008 19:25

судя по хелпу DataGrid лежит на стейдже, а вот когда юзер кликает на кнопку "Распечатать" то динамический в коде создаеться страшный PrintDataGrid и кидаеться в принт джоб все это делаеться без добавления его на стейдж ... или вам и на печать нужен красивый DataGrid?

mitado 10.06.2008 15:58

да, крайне желательно при печати сохранить вид обычного DataGrid, и, если честно, меня несколько смущает трудоемкость разбивания PrintDataGrid на страницы, особенно если этих таблиц две и более на одной странице..


Часовой пояс GMT +4, время: 18:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.