Войти

Показать полную графическую версию : Что еще можно сделать с XML + XSLT + XSL


Страниц : 1 2 3 4 5 6 7 8 9 10 [11] 12 13

EvgeniyQQQ
27-03-2007, 13:00
Добрый день. Помогите пожалуйста.
Есть xml и xsl файлы. Соединяю их в fo-файл. Полученный файлик преобразую в PDF с помощью FOP-процессора Apache FOP.
Проблема состоит в том, что в получившемся pdf-документе символы русского алфавита меняются на #.
Почему так, не знаю. С английским всё ok. Менял кодировку, непомогло.

mar
27-03-2007, 13:36
скорей всего обычная беда - отсутствие работающих в pdf шрифтов. А вот принципиальное отсутствие и невозможность включить, или все-таки не такое фатальное - это, вероятно, - к документации.

EvgeniyQQQ
27-03-2007, 15:54
mar
Поясните пожалуйста, что означат выражение: отсутствие работающих в pdf шрифтов

mar
27-03-2007, 16:54
программа, собирающая pdf должна как-то показать текст. Для этого она использует шрифты, не знаю - системные, или какие-то свои, но судя по результату некирилические.

EvgeniyQQQ
27-03-2007, 17:39
mar
При помощи XSL-FO (файл *.xsl) можно указать используемый шрифт. Я указывал Arial, TimeNew Roman, Verdana, бесполезно.

mar
27-03-2007, 19:03
EvgeniyQQQ
указать-то можно. Но лично я, не видя документации к программе, не знаю, какие шрифты она подхватывает и откуда. Или проблема вылезает до Pdf-преобразования? Попробуйте проверить это поэтапно.

EvgeniyQQQ
27-03-2007, 20:18
mar
Спасибо за помощь. Вы были правы, программа Apache FOP "не знает" шрифтов потдерживающих русский.
Но, её можно "научить" этому. Решение проблемы описано здесь: http://www.javaportal.ru/java/articles/ruschars/ruschars.html#fop
Сделал как там написано, всё работает.

mar
27-03-2007, 20:53
Все хорошо, что хорошо кончается :)

FADE
12-04-2007, 09:16
Vlad Drakula а где вы храните код счетчиков и в каком виде: в бд, в xml или xsl файле?

Vlad Drakula
12-04-2007, 09:23
FADE
каких именно счетчиков?

FADE
12-04-2007, 10:26
Vlad Drakula hotlog например, spylog и т.п.

Vlad Drakula
12-04-2007, 10:50
FADE
а... это зашито в шаблоне, но ент проблема это хранить в базе или другом XSL файле

FADE
24-04-2007, 21:20
Народ, а как можно вот это улутшить?


<xsl:template match="item">
<xsl:variable name="pos" select="position()"/>

<xsl:choose>
<xsl:when test="$pos=10 or $pos=20 or $pos=30 or $pos=40 or $pos=50 or $pos=60 or $pos=70 or $pos=80 or $pos=90 or $pos=100 or $pos=110 or $pos=120">
<xsl:value-of select="item"/><br/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="item"/>
</xsl:otherwise>
</xsl:choose>

</xsl:template>


а то както длинннннннно получилось:)

vadimiron
24-04-2007, 22:18
FADE
(position() mod 10)= 0

FADE
24-04-2007, 23:36
vadimiron спасип:)

FADE
24-04-2007, 23:56
а почему вот это не работает?


<xsl:apply-templates select="$page"/>


пишет вот это:
Warning: Sablotron error on line 4: expression is not a node set in

что это значит?..

Vlad Drakula
25-04-2007, 00:01
FADE
что написано то и значит, вы просто нечитали спецификацию XSL 1.0
приведу отрывок на эту тему: переменная не может содержать node set, apply-templates принимает на вход node set
это ограничение снято в XSL2.0

FADE
25-04-2007, 00:58
Vlad Drakulaт.е. если сменить цифру в заголовке с 1 на 2 все заработает?:)

Vlad Drakula
25-04-2007, 01:04
FADE
не думаю, т.к. Sablotron по моему не поддреживает XSL2.0 для XSL2.0 нужен саксон...
в XSL2.0 много вкусностей, нопока придется обходится XSL1.0

FADE
25-04-2007, 01:22
Vlad Drakula Sablotron - это то чем php преобразует?




© OSzone.net 2001-2012