Upload
vivian-motti
View
187
Download
0
Embed Size (px)
DESCRIPTION
Minicurso em 4 módulos apresentado durante o ERBASE em 2009.
Aplicando Transformações em XML usando XSLT e
XSL-FO
Ms Vivian Genaro MottiProfª Drª Maria da Graça Pimentel
Prof Dr Rudinei Goularte
Ilhéus, maio de 2009.
ERBASE
Parte I: XML, conceitos e definições Parte II: XSD, XSL, X-PATH Parte III: CSS, XSL-T, XSL-FO Parte IV: XSL-FO (Formatting
Objects)
XSL-FO: Sumário Definição XSL-FO x CSS Vocabulário Ferramenta Exemplos Referências
FOP Aplicação Java de código aberto Provê vários formatos de saída: PDF,
PostScript, SVG... Lê FOs e os renderiza A área delimitada por fo:root é
renderizada pelo FOP
Processamento FOP
Arquivo XSL-FO Instrução padrão de processamento
de XML<?xml version="1.0" encoding="utf-8"?><fo:root>
Conjunto principal do layout descrição dos tipos de páginas sequências nas quais estes formatos de
páginas podem ocorrer As páginas e seus conteúdos
Layout das Páginas
Quais tipos de páginaso documento pode ter?
3 exemplos capa esquerda direita
Especificar: altura largura margens
Layout das Páginas (I)
Layout das Páginas (II)
Layout das Páginas (III)
Resultado
Layout das PáginasUnidades px pt mm cm em in
Especificação simple-page-master
Referência master-name
Margens Regiões sem saída impressa
Áreas de conteúdo da página
Layout das PáginasDireções FO considera que uma página é composta por 2 elementos:
Elementos Block: parágrafos que começam em uma nova linha
Elementos Inline: negrito, itálico
Block progress direction Ordem na qual os parágrafos se posicionam na página
Independente de linguagem
Layout das PáginasEstrutura FO fo:root tem um fo:layout-master-set e um fo:page-sequence fo:layout-master-set tem fo:simple-page-master fo:simple-page-master descreve o layout da página master-name define o nome do layout fo:page-sequence tem fo:flow e indica como colocar conteúdo em um master page master-reference indica a master page a ser utilizada fo:flow tem elementos fo:block (neste exemplo), que indicam conteúdo a ser colocado na página
Layout das Páginas
As margens do region-body devem ser maiores ou iguais aos extents do region-before e region-after para evitar sobreposições do tipo:
Page Sequences Especificar a ordem de uso dos tipos de páginas Dois tipos
Capa Conteúdo: alternância esquerda, direita
Page Sequences Documentos sem ser frente-e-verso com restrição de páginas
Capa Conteúdo: alternância esquerda, direita
Atributo maximum-repeats também pode ser aplicado em repeatable-page-master-alternatives Função: limitar o número de páginas geradas pela sequência
Capa Especificar
qual sequência de páginas será usada em qual região a informação deve estar
Capa
40) Especifica a sequência de páginas para o conteúdo41) O conteúdo seguinte vai para a área xsl-region-body da página42-44) Este conteúdo vai em uma nova linha conforme especificações45-48) Outro bloco para a mensagem de copyright (com fonte diferente e space-after)49) Outro bloco: informação da publicação52-53) Fim do conteúdo desta página
Gerando o PDF Para renderizar a página para impressão
Download do software da Apache FOP (Formatting Objects Processor)
(
Formatador para XSL-FO, aplicação Java que renderiza a página gerando a saída especificada
http://xmlgraphics.apache.org/fop/
Gerando o PDF Saídas
PDF, PS, XML, PNG, RTF, SVG, AWT, MIF, TXT
Vantagem do XSL-FO• a entrada é um arquivo XML que pode ser criado
de várias fontes
Método mais comum Converter XML semântico para XSL-FO
usando XSLT
Requisitos Java 1.1x Parser XML que suporte SAX ou DOM Parser XSLT Biblioteca SVG (do arquivo w3c.jar do FOP)
B
Script Fop livro.fo livro.pdf Produz o arquivo PDF
Visualizador de PDF
Adicionando Gráficos O comando external-graphic tem o
atributo src com a URI da imagem
Adicionando Linha e Paginação
O objeto leader tem o atributo leader-pattern e leader-length com o tipo e o tamanho O objeto page-number exibe o número de página
Adicionando texto em bloco O objeto block tem os atributos font-size e font-family com o tamanho e a fonte, text-align com o alinhamento do texto e line-heigth e space-after.optimum
Adicionando lista de itens
Listas XSL-FO List Blocks
Quatro elementos fo:list-block (contém a lista toda) fo:list-item (contém cada item da lista) fo:list-item-label (contém o rótulo para o
item da lista – em geral um <fo:block> com número ou caractere)
c
fo:list-item-body (com o conteúdo do item da lista – em geral um ou mais objetos <fo:block>)
Adicionando bordas ao bloco
O objeto fo-block tem os atributos para configuração da borda
Adicionando link e cor ao fundo
O objeto fo-block tem os atributos para cor de fundo e fo:basic-link para links
Adicionando tabela
Tabelas: fo:table-and-caption
Nove objetos do XSL-FO são usados para criar tabelas: fo:table-and-caption fo:table fo:table-caption fo:table-column * fo:table-header * fo:table-footer * fo:table-body * fo:table-row fo:table-cell
* elementos opcionais
Adicionando nota de rodapé
Adicionando coluna dupla
Formatting Objects
fo:basic-link fo:bidi-override fo:block fo:block-container fo:character fo:color-profile fo:conditional-page-master-reference fo:declarations fo:external-graphic fo:float fo:flow fo:footnote fo:footnote-body fo:initial-property-set fo:inline fo:inline-container fo:instream-foreign-object fo:layout-master-set fo:leader fo:list-block
fo:list-item fo:list-item-body fo:list-item-label fo:marker fo:multi-case fo:multi-properties fo:multi-property-set fo:multi-switch fo:multi-toggle fo:page-number fo:page-number-citation fo:page-sequence fo:page-sequence-master fo:region-after fo:region-before fo:region-body fo:region-end fo:region-start fo:repeatable-page-master-alternatives fo:repeatable-page-master-reference
fo:retrieve-marker fo:root fo:simple-page-master fo:single-page-master-reference fo:static-content fo:table fo:table-and-caption fo:table-body fo:table-caption fo:table-cell fo:table-column fo:table-footer fo:table-header fo:table-row fo:title fo:wrapper
Considerações Importantes XSL-FO
Especifica o layout de apresentação de um documento XML
Permite diferentes formatos de saída Diferenciais
Configurar direção do texto Especificar modelos de layout
Considerações Finais XML é uma linguagem relativamente
simples Permite intercâmbio de dados entre
diferentes plataformas e tecnologias XSL-FO é um recurso para
estruturas a apresentação e gerar aplicações XML
Referências[AH, 1996] Antenna House. Disponível em: http://www.
antennahouse.com/[DOM, 2005] Especificação W3C do XML DOM. Disponível
em: http://www.w3.org/DOM/ [DOM, 2009] Tutorial sobre XML DOM. Disponível em: http://
www.w3schools.com/dom/default.asp[FO, 2001] Disponível em:
http://www.xml.com/pub/a/2001/01/24/xsl-fo/index.html ?page=1
[FO, 2002] Printing from XML: An Introduction to XSL-FO. Disponível em: http://www.xml.com/pub/a/2002/10/09/xslfo.html
Referências[FO, 2009] Tutorial da W3C sobre XSL-FO. Disponível em
http://www.w3schools.com/xslfo/[FOP, 2009] Processador de FO. Disponível em: http://
xmlgraphics.apache.org/fop/[FO W3C, 2000] Formatting Objects W3C Candidate
Recommendation. Disponível em: http://www.w3.org/TR/2000/CR-xsl-20001121/slice6.html#fo-section
[Goldfarb and Prescod, 1998] Goldfarb, C. and Prescod P. The XML handbook. Prentice Hall. 1998.
[Namespaces, 2006] Namespaces in XML 1.0. Disponível em: http://www.w3.org/TR/xml-names/
Referências[PT, 1999] Passive Tex. Disponível em: http://www.ibiblio.org/
bosak/conf/xmldev99/rahtz/passivetex.html[Pitts-Moultis and Kirk, 2000] Pitts-Moultis, N. and Kirk, C.
XML Black Book. Makron Books. 2000.[RenderX, 2005] RenderX. Disponível em: http://www.renderx
.com/
[SAX, 2000] Projeto SAX. Disponível em: http://www.saxproject.org/
[Schema, 2001] XML Schema. Disponível em: http://www.w3.org/XML/Schema
Referências[Schema, 2001] Tutorial sobre XML Schema. Disponível em:
http://www.w3schools.com/schema/ [SMIL, 1998] SMIL (Standard Multimedia Integration
Language), disponível em: http://www.w3.org/TR/1998/TR/1998/PR-smil-19980409/
[Spencer, 1999] Spencer, P. XML Design and Implementation. Wrox Press Ltda. 1999.
[XML, 2009] Tutorial sobre XML da W3C. Disponível em:http://www.w3schools.com/xml/
[XPath, 1999] Definição de XPath disponível em: http://www.w3.org/TR/xpath
Referências[XPath, 2009] Tutorial sobre XPath disponível em: http
://www.w3schools.com/xpath/[XSL, 2009] Tutorial sobre XSL da W3C. Disponível em:http
://www.w3schools.com/Xsl/xsl_languages.asp[XSL-FO, 2001] Using XSL Formatting Objects. Disponível em:
http://www.xml.com/pub/a/2001/01/17/xsl-fo/index.html[XSL W3C, 2009] Definição de XSL disponível em: http
://www.w3.org/Style/XSL/ [XSLT, 2009] Tutorial da W3C sobre XSLT. Disponível em:
http://www.w3schools.com/xsl/
Referênciashttp://www.xml.com/pub/a/2002/10/09/xslfo.html
http://www.xml.com/pub/a/2001/01/24/xsl-
fo/index.html ?page=1
http://www.w3schools.com/xslfo/xslfo_intro.asp
http://xmlgraphics.apache.org/fop/
http://www.w3.org/TR/2000/CR-
xsl-20001121/slice6.html#fo-section