|
Формирование одностраничных документов в шаблоне XSL
|
|||
---|---|---|---|
#18+
Добрый день. Я создаю шаблон документа в файле xsl, для выгрузки его в PDF посредством редактора FOP. В качестве источника данных выступает файл xml с набором данных по многим счетам. Вопрос: Можно ли сделать так чтобы текст основного тела отчета <fo:region-body/> не переходил на вторую страницу (если он не помещается на первой), а обрезался? Т.е. чтобы для каждого счета у нас всегда получался одностраничный документ. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 09:31 |
|
Формирование одностраничных документов в шаблоне XSL
|
|||
---|---|---|---|
#18+
Вообще нет, но если сильно хочется, то да. В общем случае на основании эмпирических данных вы можете определить тег, за пределы которого разрыв документа не вылезает, печатая по счету за раз. Если разрыв попадает всегда в один и тот же тег с кучей текста, то считайте, что вам крупно повезло - вам нужно будет лишь ограничить размер текста, который будет отрезаться и попадать на первую страницу. В противном случае вам нужно будет ограничить количество потомков этого тега, которые так же будут отрезаться от коллекции. Но это еще не всё, это должна быть вторичная трансформация. То есть нужно взять <fo> и снова прогнать через xsl, убирая лишнее. Но и это еще не все. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
text2 тоже нужно убирать. То есть после определения места разрыва нужно пройтись по родителям и поудалять сиблинги, находящиеся после родителей. Теоретически все это можно устроить на xsl за две трансформации, но обрезание проще сделать через DOM после первой трансформации на том языке, из которого она запускается. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 00:52 |
|
|
start [/forum/topic.php?fid=14&tid=1331903]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 141ms |
0 / 0 |