Кривой Html в Rt-item в клиенте

nvyush

Lotus team
22.04.2009
2 317
0
#1
Здравствуйте все!
Возникла проблема — генерю html, вставляю в mime рт-поле, открываю в клиенте — получаю таблицу, сжатую по размеру данных. В дизайнере создаю пустую страницу, вставляю в тот же самый html-код в html-pane — всё отображается как надо. Можно это как-нибудь победить? Фрагмент html-кода:
Код:
<STYLE TYPE="text/css">
<!--
div.page {width: 267mm; border:1px solid red;}
p.header {font-size:14pt; font-weight:bold; text-align:center; }
table.footer {width: 267mm; margin-left:1px; margin-right:1px;}
td.label {border:0px; font-family:serif; font-size:12pt; text-align:left;}
td.value {border-bottom:1px solid black; border-left: 0px; border-top: 0px; border-right: 0px; font-family: "Arial", sans-serif; font-size:12pt; text-align:center}
-->
</STYLE>
<DIV class="page">
<P class="header">Заявка № {DocN} от {CreatedOn}</P>
<TABLE class="footer">
<COL WIDTH=20%><COL WIDTH=80%>
<TR><TD class="label">Подразделение</TD><TD class="value">{PersonDepartment}</TD></TR>
<TR><TD class="label">	Должность</TD><TD class="value">{PersonJobTitle}</TD></TR>
<TR><TD class="label">Сотрудник</TD><TD class="value">{Person}</TD></TR>
</TABLE>
</DIV>
 
13.03.2009
625
1
#2
врятли.
до r8 возможности рендеринга html находились на уровне браузеров конца прошлого века.
т.е. простейшую разметку он отрисует, а сколько-нибудь вдумчивый css применить не сможет...
а html-pane( судя по дефолтным шрифтам ) похоже отрисовывается ie-шным рендеререром.
в r8 проще заюзать xpage на клиенте.

по вашей разметке:
проблема в том, что миллиметры и прочие дюймы не входят в спецификацию html - там только пиксели и проценты.
миллиметры есть в спецификации css, но на нормальную их поддержку в клиенте рассчитывать не стоит.
workaround:
В windows по дефолту стоит разрешение экрана 96dpi - т.о. можно вычислить необходимый размер таблицы в пикселах:
267mm соответсвуют (26.7*96/2.54 ) 1010 пикселам.
т.е. <table width="1010"> даст нужный размер.
плюс я бы рекомендовал не мешать div-верстку с табличной.
Код:
<style> .header{...} td.label {...} td.value {...}</style>
<p class="header">Заявка № {DocN} от {CreatedOn}</p>
<table width="1010">
<col width="20%" /><col width="80%" />
<tr><td class="label">Подразделение</td><td class="value">{PersonDepartment}</td></tr>
<tr><td class="label">	Должность</td><td class="value">{PersonJobTitle}</td></tr>
<tr><td class="label">Сотрудник</td><td class="value">{Person}</td></tr>
</table>
рисует то, что нужно ( 7.0.3 )
фактический масштаб экрана( пресловутые 96dpi ) наверняка можно выдернуть через winapi.
 

nvyush

Lotus team
22.04.2009
2 317
0
#3
фактический масштаб экрана( пресловутые 96dpi ) наверняка можно выдернуть через winapi.
Спасибо, только это мне нужно для печатного бланка.
Клиент 8.0.2, х-страницы как я понял, появились в 8.5, по крайней мере в дизайнере я их не вижу.
Что касается смешения дивов и таблиц — веб-дизайном никогда не занимался, использую, что под руку подвернулось.
 

nvyush

Lotus team
22.04.2009
2 317
0
#4
Возвращаясь к вопросу о дивах: забавный результат получается, если нижеприведённый html-код вставить в html-pane и в mime rt-поле:
Код:
<STYLE TYPE="text/css">
<!--
.page {width: 267mm; border: 1px solid red; background-color: yellow}
p.rightFooter {text-align: right; text-decoration: underline}
-->
</STYLE>
<DIV class="page">
<P class="rightFooter">За что я не люблю Лотус Нотус</P>
</DIV>
<TABLE class="page"><TR><TD>
<P class="rightFooter">За что я не люблю Лотус Нотус</P>
</TD></TR></TABLE>
В пэйне всё ок. В поле див получает нужный размер, но ни фона, ни границы, таблица же наоборот, имеет заданные фон и границы, но размер усохший.
 
13.03.2009
625
1
#5
Возвращаясь к вопросу о дивах: забавный результат получается, если нижеприведённый html-код вставить в html-pane и в mime rt-поле:
В пэйне всё ок. В поле див получает нужный размер, но ни фона, ни границы, таблица же наоборот, имеет заданные фон и границы, но размер усохший.
дык я ж написал - не надо юзать милиметры для указания ширины таблицы. они вне закона в html.
немного поправленный html( ширину td тоже надо указывать явно) вставьте импортом в поле и посмотрите на результат...
Код:
<html>
<head>
<style type="text/css">
p.header {font-size:14pt; font-weight:bold; text-align:center; }
td.label {border:0px; font-family:serif; font-size:12pt; text-align:left;}
td.value {border-bottom:1px solid black; border-left: 0px; border-top: 0px; border-right: 0px; font-family: "Arial", sans-serif; font-size:12pt; text-align:center}</head>
</style>
<body>
<p class="header">Заявка № {DocN} от {CreatedOn}</p>
<table width="1010">
<tr><td width="202">Подразделение</td><td width="808" class="value">{PersonDepartment}</td></tr>
<tr><td class="label">	Должность</td><td class="value">{PersonJobTitle}</td></tr>
<tr><td class="label">Сотрудник</td><td class="value">{Person}</td></tr>
</table>
<body>
</html>