Текущее время: Вт, июл 22 2025, 09:18

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Конвертация XML в PDF
СообщениеДобавлено: Чт, янв 25 2007, 16:27 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Коллеги, приходилось ли кому делать subj конвертацию? Чем можно такое сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конвертация XML в PDF
СообщениеДобавлено: Пт, янв 26 2007, 10:08 
Специалист
Специалист

Зарегистрирован:
Пт, июл 22 2005, 08:56
Сообщения: 158
Manticore написал(а):
Коллеги, приходилось ли кому делать subj конвертацию? Чем можно такое сделать?

Можно воспользоваться Altova XMLSpy, а именно трансформацией XSL:FO
Вроде перед этим необходимо установить для XMLSpy дополнительный компонентик FOB...

_________________
C SAP
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 26 2007, 10:09 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Где этот софт можно взять?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 26 2007, 10:37 
Специалист
Специалист

Зарегистрирован:
Пт, июл 22 2005, 08:56
Сообщения: 158
Manticore написал(а):
Где этот софт можно взять?


http://www.philka.ru/news.php?item.2118.1
здесь: xmlspy 2007 плюс лекарство от жадности

_________________
C SAP
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 26 2007, 17:28 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 08:10
Сообщения: 1024
Спасибо большое!

XMLSpy скачал, в инете нашел файл fop.bat, указал его в свойствах XMLSpy. Потом загрузил xml, пытаюсь конвертить через FO - требует XSL файл.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 26 2007, 22:53 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Нашел в загашнике файл разметки для PDF. Сам не проверял.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo"
    xmlns:datetime="http://exslt.org/dates-and-times">
    <xsl:output method="xml" version="1.0" omit-xml-declaration="no" indent="yes"/>

    <xsl:variable name="descriptions">
        <xsl:value-of select="count(//rows/row[position()=1]/child::*)"/>
    </xsl:variable>

    <xsl:template match="rows">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set background-color="grey">
                <fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="1.5cm" margin-bottom="1.5cm" margin-left="1cm" margin-right="1cm" background-color="grey">
                    <fo:region-body margin-top="0mm" margin-bottom="15mm" margin-left="0mm" margin-right="0mm"/>
                    <fo:region-after extent="10mm"/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="simpleA4" background-color="grey">

                <fo:static-content flow-name="xsl-region-after">
                    <fo:block text-align="right">
                        <fo:page-number/>
                        <xsl:text> из </xsl:text>
                        <fo:page-number-citation ref-id="last-page"/>
                    </fo:block>
                </fo:static-content>

                <fo:flow flow-name="xsl-region-body">
                    <fo:block font-size="7pt">

                        <xsl:variable name="width" select="concat(19 div $descriptions, 'cm')"/>

                        <fo:table table-layout="fixed">

                            <xsl:for-each select="./row[position()=1]">
                                <xsl:for-each select="child::*">
                                    <fo:table-column>
                                        <xsl:attribute name="column-width">
                                            <xsl:value-of select="$width"/>
                                        </xsl:attribute>
                                    </fo:table-column>
                                </xsl:for-each>
                            </xsl:for-each>

                            <fo:table-header background-color="rgb(51,102,153)">

                                <fo:table-row>

                                    <xsl:for-each select="./row[position()=1]">
                                        <xsl:for-each select="child::*">

                                            <fo:table-cell padding-top="3mm" padding-bottom="3mm" padding-right="1mm" padding-left="1mm" border-color="rgb(255,251,213)" border-bottom-width="0pt" border-top-width="0pt" border-left-width="0px" border-style="solid" display-align="center">
                                                <xsl:choose>
                                                    <xsl:when test="position() = $descriptions">
                                                        <xsl:attribute name="border-right-width">
                                                            0px
                                                        </xsl:attribute>
                                                    </xsl:when>
                                                    <xsl:otherwise>
                                                        <xsl:attribute name="border-right-width">
                                                            1px
                                                        </xsl:attribute>
                                                    </xsl:otherwise>
                                                </xsl:choose>

                                                <fo:inline color="rgb(255,255,255)">
                                                    <fo:block text-align="center" font-weight="bold">
                                                        <xsl:value-of select="@description"/>
                                                        <xsl:for-each select="./rows">
                                                            <xsl:for-each select="./row/property">
                                                                <xsl:value-of select="@description"/>
                                                            </xsl:for-each>
                                                        </xsl:for-each>
                                                    </fo:block>
                                                </fo:inline>

                                            </fo:table-cell>
                                        </xsl:for-each>
                                    </xsl:for-each>
                                </fo:table-row>

                            </fo:table-header>

                            <fo:table-body>
                                <xsl:apply-templates select="row"/>
                            </fo:table-body>

                        </fo:table>

                    </fo:block>

                    <fo:block id="last-page"/>

                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>

    <xsl:template match="row">
        <fo:table-row>

            <xsl:choose>
                <xsl:when test="position() mod 2 = 1">
                    <xsl:attribute name="background-color">
                        rgb(255,255,255)
                    </xsl:attribute>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:attribute name="background-color">
                        rgb(239,239,239)
                    </xsl:attribute>
                </xsl:otherwise>
            </xsl:choose>

            <xsl:for-each select="property">
                <xsl:variable name="x" select="@type"/>
                <fo:table-cell padding-right="1mm" padding-left="1mm" border-color="rgb(255,251,213)" border-bottom-width="0pt" border-top-width="1pt" border-left-width="0px" border-right-width="1px" border-style="solid" padding-top="1mm" padding-bottom="1mm">
                    <xsl:choose>
                        <xsl:when test="position() = $descriptions">
                            <xsl:attribute name="border-right-width">
                                0px
                            </xsl:attribute>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="border-right-width">
                                1px
                            </xsl:attribute>
                        </xsl:otherwise>
                    </xsl:choose>
                    <fo:block>
                        <xsl:attribute name="text-align">
                            <xsl:choose>
                                <xsl:when test="$x=6">right</xsl:when>
                                <xsl:otherwise>left</xsl:otherwise>
                            </xsl:choose>
                        </xsl:attribute>
                        <xsl:value-of select="./text()" disable-output-escaping="yes"/>
                    </fo:block>
                </fo:table-cell>
            </xsl:for-each>
        </fo:table-row>
    </xsl:template>
</xsl:stylesheet>

Используется FOP .
Надо зайди на www.w3c.org и почитать про XSL/XSL-FO - там и спецификация, и описание процессоров и много других полезных ресурсов и ссылок.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 12:30 
Специалист
Специалист

Зарегистрирован:
Пт, июл 22 2005, 08:56
Сообщения: 158
Manticore написал(а):
Спасибо большое!

XMLSpy скачал, в инете нашел файл fop.bat, указал его в свойствах XMLSpy. Потом загрузил xml, пытаюсь конвертить через FO - требует XSL файл.


Все правильно - и должен требовать :wink:

Можно взять у vga, а можно пойти в поиск, допустим на яндекс, и найти более-менее сложные XSLT-файлы для трансформации в PDF.

_________________
C SAP
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB