Текущее время: Пн, июл 21 2025, 19:24

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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