powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / помогите поборот xsl-fo
6 сообщений из 6, страница 1 из 1
помогите поборот xsl-fo
    #34465895
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть xslt которая накладывается на данные и в результате получаем pdf нужного формата, но существует такая проблема:
если в ячейка длинная строка(без пробелов) то она наезжает на соседнии ячейки
начитавшись стандартов на w3c я понял что меня спасет <fo:block-container>
у которого есть свойство overflow
но когда я вставляю данный блок в шаблон
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<xsl:template match="td">
			<fo:table-cell  border='solid #004080 1px' padding='0.2em'>
			<fo:block-container>					
		    		<fo:block  wrap-option="wrap">
					    <xsl:choose>
						    <xsl:when test="@align='left'">
						        <xsl:attribute name="text-align">start</xsl:attribute>
						    </xsl:when>
						    <xsl:when test="@align='center'">
						        <xsl:attribute name="text-align">center</xsl:attribute>
						    </xsl:when>
						    <xsl:when test="@align='right'">
						        <xsl:attribute name="text-align">end</xsl:attribute>
						    </xsl:when>
					    </xsl:choose>
					    <xsl:apply-templates/>
				</fo:block>
			</fo:block-container>			
			</fo:table-cell>		
	</xsl:template>

то ячейки выводятся пустые
помогите побороть оч нуна второй день долбаюсь
(могу конечно програмно обрезать но это как то неэстетично)
...
Рейтинг: 0 / 0
помогите поборот xsl-fo
    #34466052
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых у твоего блок-контэйнера нет ни одного свойства описывающего его. в том числе в этих свойствах задается позиционирование этого объекта, или относительное или абсолютное соответственно. свойства и примеры можно посмотреть на zvon.org

если это ячейка таблиц то почему нельзя задать жестко ширину колонки? тогда слова будут переноситься на следующую строку...

и ещё вопрос, какую версию fop используете? или может это не fop?
...
Рейтинг: 0 / 0
помогите поборот xsl-fo
    #34466178
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrei77во первых у твоего блок-контэйнера нет ни одного свойства описывающего его. в том числе в этих свойствах задается позиционирование этого объекта, или относительное или абсолютное соответственно. свойства и примеры можно посмотреть на zvon.org

если это ячейка таблиц то почему нельзя задать жестко ширину колонки? тогда слова будут переноситься на следующую строку...

и ещё вопрос, какую версию fop используете? или может это не fop?
Версия 1.0 но когда ставишь в заголовке документа 1.1 то ничего не меняется.
Ширина колонок действительно задана жестко но если текс в ячейке без пробелов (что то типа "ывпывпывапываравпвпаплроыплорыла") то данный текст наезжает на соседние колонки.
Сейчас попробую поиграться с позиционированием. Хотя как то странно что позиционирование может влиять на не отображение содержимого.
...
Рейтинг: 0 / 0
помогите поборот xsl-fo
    #34466258
sashenka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поигрался с позиционированием но результат тот же: данных в ячейках нет :-(
...
Рейтинг: 0 / 0
помогите поборот xsl-fo
    #34466346
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помню толи на этом форуме толи на другом уже поднимался подобный вопрос.
Глянь тут тут
или тут
...
Рейтинг: 0 / 0
помогите поборот xsl-fo
    #34466681
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых ... это ты как-то неправильно версию смотрел. потомучто основных версий фопа 2:
0.20.5 и 0.93 (http://xmlgraphics.apache.org/fop/)... они кстати отличаются в некоторых местах значительно. более точные отличие можешь посмотреть на том же сайте...

вот тебе примерчик работающий:
позиционирование конечно будет влиять, и видеть ты ничего не будешь если контейнир разместится вне области видимости

<fo:table-cell border-style="solid" border-right-width="0mm" border-left-width="{concat($border-big, 'mm')}"
border-top-width="{concat($border-big, 'mm')}" border-bottom-width="{concat($border-big, 'mm')}"
number-rows-spanned="2">

<fo:block-container line-height="6mm" top="10mm" position="absolute" reference-orientation="90">
<fo:block font-family="GOST_A_" font-size="12pt">№ строки</fo:block>
</fo:block-container>
</fo:table-cell>

Причем table-cell обязан быть дочерним по отношению к table-row

во-вторых. если именно не переносятся конструкции типа которого ты привел, можно воспользоваться свойством переносов, сам пробовал - работает.

Свойства переносов определяют, где разрешены переносы и как они должны использоваться. Эти свойства применяются только к коротким или "мягким" дефисам, которые, например, используются для разбивки длинных слов в конце строки. Они не действуют на твердые дефисы, как, например, в слове mother-in-law, хотя наличие твердых дефисов может влиять на появление мягких. Имеется шесть свойств переносов

Подробнее можешь посмотреть на Школе консорциума W3C(xml.nsu.ru). Там все переведено на русский.

читай спецификацию и смотри примеры... способов оч. много.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / помогите поборот xsl-fo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]