Формирование здорового образа жизни
<<  Своя игра здоровый образ жизни для родителей Формирование основ здорового образа жизни у детей с тяжелыми нарушениями речи  >>
Технология формирования «тяжелых» отчетов в формате PDF, используя
Технология формирования «тяжелых» отчетов в формате PDF, используя
Назначение apache FOP примеры разработки пользовательских отчетов
Назначение apache FOP примеры разработки пользовательских отчетов
Apache FOP это программа, которая переводит XML, написанный в формате
Apache FOP это программа, которая переводит XML, написанный в формате
Apache Tomcat
Apache Tomcat
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Для действительно сложных по форматированию и/или многостраничных
Для действительно сложных по форматированию и/или многостраничных
Преимущества XSL-FO как языка Не надо много раз прописывать значения
Преимущества XSL-FO как языка Не надо много раз прописывать значения
Преимущества XSL-FO как языка Некоторые группы атрибутов имеют более
Преимущества XSL-FO как языка Некоторые группы атрибутов имеют более
Преимущества XSL-FO как языка Возможность задавать размеры в разных
Преимущества XSL-FO как языка Возможность задавать размеры в разных
Чего не хватает при работе с Apache FOP http://wiki
Чего не хватает при работе с Apache FOP http://wiki
Чего не хватает при работе с Apache FOP http://www
Чего не хватает при работе с Apache FOP http://www
Чего не хватает при работе с Apache FOP Как получается: Тогда как
Чего не хватает при работе с Apache FOP Как получается: Тогда как
Однако, у Apache FOP (как у программы ) есть особенность, которая
Однако, у Apache FOP (как у программы ) есть особенность, которая
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
<?xml version="1
<?xml version="1
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Установка в базе данных ORACLE Из архива второго слайда презентации
Установка в базе данных ORACLE Из архива второго слайда презентации
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Примеры разработки пользовательских отчетов
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Пример развертывания apache FOP как web-приложения
Спасибо за внимание
Спасибо за внимание

Презентация: «Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP». Автор: Александр. Файл: «Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP.ppsx». Размер zip-архива: 3250 КБ.

Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP

содержание презентации «Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP.ppsx»
СлайдТекст
1 Технология формирования «тяжелых» отчетов в формате PDF, используя

Технология формирования «тяжелых» отчетов в формате PDF, используя

Apache FOP

2014

Миндияров Илья Гафурович Главный специалист по программному обеспечению Центра информационных технологий и консалтинга «ПАРУС» mindiyarov@parus.com

2 Назначение apache FOP примеры разработки пользовательских отчетов

Назначение apache FOP примеры разработки пользовательских отчетов

пример развертывания apache FOP как web-приложения

Рассматриваемые задачи

В архиве находятся файлы, используемые в презентации. Чтобы их открыть нужно: Открыть PowerPoint Открыть файл этой презентации На текущем слайде 2 раза нажать кнопку мыши на иконке файла

3 Apache FOP это программа, которая переводит XML, написанный в формате

Apache FOP это программа, которая переводит XML, написанный в формате

XSL formatting objects (XSL-FO) , в различные форматы: PDF, RTF, PCL, PS, PNG, TIFF. Используется для написания отчетов которые: Требуют сложного форматирования; Имеют большой объем страниц; Требуют высокой скорости выполнения. Примечание: про XSL-FO вы можете прочитать http://ru.wikipedia.org/wiki/XSL-FO , http://www.w3.org/TR/xsl/ , http://www.w3schools.com/xslfo/

Назначение apache FOP

4 Apache Tomcat

Apache Tomcat

Apache Tomcat

Oracle RDBMS

Apache HTTP Server

Apache Tomcat

Клиент Парус 8

Apache Tomcat

Apache Tomcat

Пример развертывания apache FOP как web-приложения

Apache FOP написан на Java и его можно вызывать из Java Servlet’ов. Это позволяет , например, в сочетании с Apache HTTP Server и Apache Tomcat обслуживать запросы любого количества пользователей, лишь бы хватило вычислительной мощности серверов. Можно развернуть много Apache Tomcat , которые являются контейнерами Java Servlet.

5 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

В презентации будет показано как развернуть 2 Apache Tomcat

6 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Для использования Apache FOP из пользовательского отчета с типом “Двоичные данные” нужно вызывать процедуру GET_FOP_DOCUMENT2 Процедура GET_FOP_DOCUMENT2 по протоколу HTTP (через UTL_HTTP) передает содержание своих параметров web-серверу. На web-сервере параметры передаются в Java Servlet который запускает Apache FOP. Результаты работы Apache FOP возвращаются также по протоколу HTTP в GET_FOP_DOCUMENT2 Мы рекомендуем web-сервер не устанавливать на тот же компьютер, на котором работает база данных ORACLE. Если вы не хотите разворачивать web-сервер , то пользуйтесь GET_FOP_DOCUMENT из презентации http://www.parus.com/docs/09_mindijarov_13122012.pps Если у Вас есть предложения по улучшению работы GET_FOP_DOCUMENT и GET_FOP_DOCUMENT2 - сообщайте по адресу mindiyarov@parus.ru.

7 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Существуют визуальные средства разработки отчетов в формате XSL-FO, например http://www.altova.com/stylevision.html

8 Для действительно сложных по форматированию и/или многостраничных

Для действительно сложных по форматированию и/или многостраничных

отчетов предлагается сразу визуальными средствами не пользоваться. Сначала изучить формат XSL-FO, а только потом принимать решение. Причем, следует отметить, что скорость разработки в обычном XML-редакторе и программировании на PL/SQL довольно скоро становится соизмерима с разработкой отчетов для MS Excel.

Примеры разработки пользовательских отчетов

9 Преимущества XSL-FO как языка Не надо много раз прописывать значения

Преимущества XSL-FO как языка Не надо много раз прописывать значения

атрибутов, некоторые значения наследуются <fo:table font-family="TimesNewRoman" font-size="8pt" table-layout="fixed" width="100%" border-collapse="separate" text-align="center" display-align="center"> … <fo:table-cell border="solid" number-columns-spanned="2"> <fo:block>Код</fo:block> </fo:table-cell> В ячейке таблицы слово “Код” будет выведено по центру горизонтально и вертикально шрифтом TimesNewRoman и размером 8pt

Примеры разработки пользовательских отчетов

10 Преимущества XSL-FO как языка Некоторые группы атрибутов имеют более

Преимущества XSL-FO как языка Некоторые группы атрибутов имеют более

короткие аналоги http://www.datypic.com/sc/fo11/s-fo.xsd.html http://www.renderx.com/tutorial.html <fo:table-cell padding-top="0pt" padding-left="0pt" padding-bottom="0pt" padding-right="0pt" border-top-style="solid" border-top-color="black" border-top-width="0.25pt" border-left-style="solid" border-left-color="black" border-left-width="0.25pt" border-bottom-style="solid" border-bottom-color="black" border-bottom-width="0.25pt" border-right-style="solid" border-right-color="black" border-right-width="0.25pt" display-align="after"> Можно сократить <fo:table-cell padding="0pt" border-top="solid black 0.25pt" border-bottom="solid black 0.25pt" border-left="solid black 0.25pt" border-right="solid black 0.25pt" display-align="after"> Можно еще <fo:table-cell padding="0pt" border="solid black 0.25pt" display-align="after">

Примеры разработки пользовательских отчетов

11 Преимущества XSL-FO как языка Возможность задавать размеры в разных

Преимущества XSL-FO как языка Возможность задавать размеры в разных

единицах измерения pc|px|pt|mm|cm|in|em Т.е. ширину колонки таблицы можно задать в сантиметрах Можно гибко управлять разрывами страниц <fo:block break-before="odd-page"> </fo:block> так у меня реализована двухсторонняя печать – первая страница отчета всегда должна быть нечетная. Можно управлять как 2 элемента будут располагаться на странице <fo:table space-before="11.25pt" keep-with-previous="always" > Так блок подписей в конце отчета всегда будет на одной странице с последней записью главной таблицы отчета. Мы уже как-то отвыкли в отчетах от переносов слов, по правилам русского языка. Теперь можно снова вспомнить. <fo:block hyphenate=“true“ language="ru"> </fo:block>

Примеры разработки пользовательских отчетов

12 Чего не хватает при работе с Apache FOP http://wiki

Чего не хватает при работе с Apache FOP http://wiki

apache.org/xmlgraphics-fop/HowTo/HtmlToPdf В таблицах нужно указывать ширину столбца <fo:table-column column-number="1" column-width="20pt"/> <fo:table-column column-number="2" column-width=“2cm"/> Единственное утешение, что можно воспользоваться функцией <fo:table-column column-number="3" column-width="proportional-column-width(58.5)"/> Если во всех столбцах задавать proportional-column-width, то можно добиться нужной пропорциональной ширины.

Примеры разработки пользовательских отчетов

13 Чего не хватает при работе с Apache FOP http://www

Чего не хватает при работе с Apache FOP http://www

w3schools.com/xslfo/prop_height.asp Хотя в спецификации fo:table-row и указано, что высота строки может задаваться в % но Apache FOP это не поддерживает. Как хочется:

Примеры разработки пользовательских отчетов

14 Чего не хватает при работе с Apache FOP Как получается: Тогда как

Чего не хватает при работе с Apache FOP Как получается: Тогда как

другой рендер XSL-FO - XEP (http://www.renderx.com ), если судить по форумам в интернете, умеет задавать высоту строки как 50% от высоты родительского элемента.

Примеры разработки пользовательских отчетов

15 Однако, у Apache FOP (как у программы ) есть особенность, которая

Однако, у Apache FOP (как у программы ) есть особенность, которая

снимает с разработчика практически все ограничения инструментария при написании отчета. Разработчик во время выполнения своей программы может послать Apache FOP запрос сгенерировать файл не в формате PDF, а в формате Apache™ FOP: Intermediate Format, который является еще одним форматом XML. В таком файле уже присутствуют низкоуровневые инструкции, как печатать документ. Главное найти “нужный” тэг “g”, это решается временным добавлением атрибута id

Примеры разработки пользовательских отчетов

16 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Чтобы не анализировать содержимое всего IF файла выполяем XSLT-преобразование: cFOP_IF_XSLT clob := ' <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" xmlns:fop="http://xmlgraphics.apache.org/fop/intermediate" exclude-result-prefixes="fop"> <xsl:output method = "xml" indent = "yes" /> <xsl:template match = "/" > <root> <xsl:apply-templates select = "//fop:g[fop:id]"/> </root> </xsl:template> <xsl:template match = "fop:g" > <xsl:variable name="my_id" select=".//fop:id/@name"/> <xsl:variable name="my_height" select=".//fop:border-rect/@height"/> <xsl:if test="starts-with($my_id,''fio'') and string-length($my_height) != 0"> <cell idd="{$my_id}" height="{$my_height}"/> </xsl:if> </xsl:template> </xsl:stylesheet> '; При написании своих XSLT не забывайте указывать xmlns:fop="http://xmlgraphics.apache.org/fop/intermediate"

17 <?xml version="1

<?xml version="1

0" encoding="UTF-8"?> <root> <cell height="71000" idd="fio1"/> </root>

Примеры разработки пользовательских отчетов

Обработка XSLT – выполняется на web-сервере, а разработчику вернется такой XML 71000/1000=71pt Таким образом мы сможем задать 50% от 71pt

18 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

В отчете Т-12, вы можете видеть, что в одной строке отчета сразу 3 таблицы: дни , итоги, неявки. Apache FOP такой задачей справляется. Причем справляется быстро.

19 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

В архиве второго слайда презентации возьмите файл UDO_P_OPRSPECS_PDF.prc – это пользовательский отчет с типом “Двоичные данные”, который просто печатает проводки. В параметре отчета указывается кол-во проводок, которые надо напечатать.

20 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Структура XSL-FO файла примерно следующая внутри корневого элемента находится один или несколько тэгов page-sequence <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" > …. <fo:page-sequence master-reference=“A4"> <fo:flow flow-name="xsl-region-body"> …. </fo:flow> </fo:page-sequence> <fo:page-sequence master-reference=“A4"> <fo:flow flow-name="xsl-region-body"> …. </fo:flow> </fo:page-sequence> ….. </fo:root>

21 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Если весь отчет состоит из единственного тэга page-sequence, то при выполнении огромного отчета у виртуальной машины java закончится память. Например, 512мб , выделенных на Apache Tomcat ,закончились после вывода 20000 проводок. При написании отчета, старайтесь программно закрывать и открывать тэг page-sequence, когда это возможно. Просто знайте, что Apache FOP дерево объектов строит сначала в оперативной памяти и поэтому быстро работает. А когда встречается page-sequence, он сохраняет объекты на диск. При формировании отчета UDO_P_OPRSPECS_PDF, через каждые 16 проводок начинается новая последовательность страниц. Отчет никаких полезных данных не выводит, это просто способ продемонстрировать, как за 10-20 минут (зависит от вашего сервера) напечатать 6250 страниц.

22 Установка в базе данных ORACLE Из архива второго слайда презентации

Установка в базе данных ORACLE Из архива второго слайда презентации

выполните GET_FOP_DOCUMENT2.prc

Примеры разработки пользовательских отчетов

23 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Это create or replace procedure GET_FOP_DOCUMENT2 ( xml in out nocopy blob, --blob с XSL-FO, --или XML-в произвольном формате, который будет преобразовываться файлом из параметра XSLT xslt in blob, --blob с XSLT-преобразованием параметра XML format in varchar2 default null, --MIME_PDF, MIME_RTF, MIME_FOP_IF (PDF,RTF или Apache FOP Intermediate Format) after_fop_if_xslt in blob default null, --blob с XSLT-преобразованием только для MIME_FOP_IF after_fop_if_xslt_model in varchar2 default null, --какой парсер использовать DOM или SAX при использовании after_fop_if_xslt output in out nocopy blob, --blob c результатом работы в форматах PDF, RTF, Apache FOP Intermediate Format или какой-то свой формат err in out nocopy blob --html c ошибками ) is --адрес http-запроса fopservlet varchar2(100) := 'http://www.parus.ru:80/fopserver/FopServlet'; timeout_in_seconds number:=60*60*10; --10 часов

24 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Поменяйте www.parus.ru на адрес своего веб-сервера, который позже будет показано как создать fopservlet varchar2(100) := 'http://www.parus.ru:80/fopserver/FopServlet'; Если хотите поменяйте 60*60*10 на другое значение timeout_in_seconds number:=60*60*10; --10 часов Под пользователем SYS выполните BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'fop_access.xml', description => 'Permissions to access fop print server.', principal => 'PARUS', is_grant => TRUE, privilege => 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'fop_access.xml', host => '192.168.56.1', lower_port => 80, upper_port => 32000); END; Только сначала замените 192.168.56.1 на адрес своего веб-сервера

25 Примеры разработки пользовательских отчетов

Примеры разработки пользовательских отчетов

Теперь в своих пользовательских отчетах с типом “Двоичные данные” вы можете применять, например: GET_FOP_DOCUMENT2(xml => BRESULT, xslt => null, format => null, output => B_PDF, err => b_err); if dbms_lob.getlength(B_PDF) > 0 then insert into FILE_BUFFER (IDENT, FILENAME, bDATA) values (nprocess, '.pdf', B_PDF); else insert into FILE_BUFFER (IDENT, FILENAME, bDATA) values (nprocess, '.htm', b_err); end if;

26 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Притворимся сервером www.parus.ru исключительно для красоты Узнаем свой ip-адрес командой ipconfig Исправляем файл C:\Windows\System32\drivers\etc\hosts Допишем строку 192.168.56.1 www.parus.ru

27 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Из архива второго слайда презентации необходимо разархивировать файл fopserver.zip в отдельную папку для определенности в C:\fopserver\

28 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Скачиваем Apache FOP http://www.apache.org/dyn/closer.cgi/xmlgraphics/fop

29 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Разархивируем Apache FOP для определенности в C:\fop-1.1\ Копируем файл C:\fop-1.1\build\fop.jar в C:\fopserver\WEB-INF\lib Копируем все файлы из C:\fop-1.1\lib в C:\fopserver\WEB-INF\lib

30 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Скачиваем правила переноса слов http://sourceforge.net/projects/offo/files/offo-hyphenation/

31 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Из скачанного архива offo-hyphenation-binary.zip Копируем файл fop-hyph.jar в C:\fopserver\WEB-INF\lib

32 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Скачиваем Apache Commons FileUpload http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi

33 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Из скачанного архива , например commons-fileupload-1.3.1-bin.tar.gz Копируем файл commons-fileupload-1.3.1.jar в C:\fopserver\WEB-INF\lib

34 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Вот примерно так будет выглядеть C:\fopserver\WEB-INF\lib

35 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Смотрим файл C:\fopserver\WEB-INF\classes\logging.properties Выбираем какой нам нужен уровень информации Для разработчиков замените WARNING на INFO

36 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Смотрим файл C:\fopserver\WEB-INF\web.xml Выбираем в какой папке будет располагаться файл с настройками Apache FOP

37 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Выделяем в проводнике папки META-INF и WEB-INF Создаем архив fopserver.zip Проверяем, что при открытии архива нет лишних папок

38 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Переименовываем C:\fopserver\fopserver.zip в fopserver.war Из архива второго слайда презентации скорируйте папку fopweb в папку, которую вы указали в C:\fopserver\WEB-INF\web.xml Если это папка не С:\fopweb, то исправьте conf\fop.xconf В папку fonts\ скопируйте из папки %WINDIR%\fonts файлы arial.ttf arialbd.ttf arialbi.ttf ariali.ttf ARIALN.TTF ARIALNB.TTF ARIALNBI.TTF ARIALNI.TTF CALIBRI.TTF CALIBRIB.TTF CALIBRII.TTF CALIBRIZ.TTF cour.ttf courbd.ttf courbi.ttf couri.ttf symbol.ttf tahoma.ttf tahomabd.ttf times.ttf timesbd.ttf timesbi.ttf timesi.ttf Как настраивать шрифты показано в этой презентации http://www.parus.com/docs/09_mindijarov_13122012.pps

39 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Скачиваем Apache Tomcat http://tomcat.apache.org/

40 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Разархивируем в C:\apache-tomcat-8.0.15 Скопируем C:\fopserver\fopserver.war в C:\apache-tomcat-8.0.15\webapps

41 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Скачаем и установим JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

42 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Установим переменную окружения JAVA_HOME

43 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Выполним в проводнике C:\apache-tomcat-8.0.15\bin\startup.bat Или в cmd cd C:\apache-tomcat-8.0.15\bin startup.bat Откроется окно

44 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Проверяем http://localhost:8080/fopserver/FopServlet

45 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Возле параметра XML нажмите кнопку “Выберите файл” Выберите любой файл из например C:\fop-1.1\examples\fo\basic

46 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Должен открыться PDF

47 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Переходим на http://httpd.apache.org/

48 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Читаем http://wiki.apache.org/httpd/FAQ переходим http://httpd.apache.org/docs/current/platform/windows.html#down/

49 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Переходим http://www.apachelounge.com/download/ Скачиваем, например http://www.apachelounge.com/download/VC11/binaries/httpd-2.4.10-win64-VC11.zip Скачиваем Распространяемый пакет Visual C++ для Visual Studio 2012 http://www.microsoft.com/ru-RU/download/details.aspx?id=30679

50 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Разархивируем файл httpd-2.4.10-win64-VC11.zip Переписываем папку Apache24 в C:\

51 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Переходим на http://tomcat.apache.org/connectors-doc/

52 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Скачиваем , например, http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x.zip Из архива файл mod_jk.so переписываем в каталог C:\Apache24\modules

53 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Переписываем файлы из C:\apache-tomcat-8.0.15 в C:\tomcat-cluster\node1 Переписываем файлы из C:\apache-tomcat-8.0.15 в C:\tomcat-cluster\node2 Из архива второго слайда презентации переписываем содержимое файлов \loadbalancing\httpd.conf в C:\Apache24\conf\ httpd.conf \loadbalancing\workers.properties в C:\Apache24\conf\ workers.properties \loadbalancing\node1\server.xml в C:\tomcat-cluster\node1\conf\server.xml \loadbalancing\node2\server.xml в C:\tomcat-cluster\node2\conf\server.xml

54 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing В файле C:\tomcat-cluster\node1\webapps\examples\index.html Пишем <p>node1</p>

55 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing В файле C:\tomcat-cluster\node2\webapps\examples\index.html Пишем <p>node2</p>

56 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Т.к. мы притворились www.parus.ru , то в httpd.conf пишем ServerName www.parus.ru:80

57 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing Суть проделанных изменений у httpd Мы подключили и настроили модуль mod_jk LoadModule jk_module modules/mod_jk.so <IfModule jk_module> JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel warn JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMount /examples/* loadbalancer JkMount /fopserver/* loadbalancer </IfModule>

58 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing В файле workers.properties прописали 2 сервера worker.list= node1, node2, loadbalancer worker.node1.port=8009 worker.node1.host=127.0.0.1 worker.node1.type=ajp13 worker.node1.lbfactor=1 worker.node2.port=8010 worker.node2.host=127.0.0.1 worker.node2.type=ajp13 worker.node2.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers= node1, node2 worker.loadbalancer.sticky_session= False

59 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Настраиваем load balancing В файлах server.xml Комментируем <!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> У node1 <Server port="8001" shutdown="asdhjsgadjhsadgjhsdgajhagsdjhgds"> <Connector port="8009" protocol="AJP/1.3" connectionTimeout="6000000"/> У node2 <Server port="8002" shutdown="asdhjsgadjhsadgjhsdgajhagsdjhgds"> <Connector port="8010" protocol="AJP/1.3" connectionTimeout="6000000"/>

60 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Из проводника запускаем C:\Apache24\bin\httpd.exe C:\tomcat-cluster\node1\bin\startup.bat C:\tomcat-cluster\node2\bin\startup.bat

61 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Проверяем http://www.parus.ru/examples/ Обновляем страницу Должно поменяться: node1 на node2

62 Пример развертывания apache FOP как web-приложения

Пример развертывания apache FOP как web-приложения

Проверяем http://www.parus.ru/fopserver/FopServlet

63 Спасибо за внимание

Спасибо за внимание

«Корпорация ПАРУС», 129366, Москва, ул. Ярославская, д.10 корп.4, (495) 797-89-90, 797-89-91

office@parus.com www.parus.com

«Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP»
http://900igr.net/prezentacija/fizkultura/tekhnologija-formirovanija-tjazhelykh-otchetov-v-formate-pdf-ispolzuja-apache-fop-211517.html
cсылка на страницу
Урок

Физкультура

35 тем
Слайды
900igr.net > Презентации по физкультуре > Формирование здорового образа жизни > Технология формирования «тяжелых» отчетов в формате PDF, используя Apache FOP