BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

Apache Foundation lança o Apache FOP 1.0

por Alex Blewitt , traduzido por Rafael Marques em 28 Jul 2010 |

Na última quarta-feira, a Apache Foundation anunciou o lançamento do Apache FOP 1.0, um projeto que demorou cerca de uma década para ser feito. O Apache FOP, ou Formatting Objects Processor, teve o seu início com o XML project na Apache antes de mudar (junto com o Batik, um renderizador SVG baseado em Java) para o projeto XMLGraphics em 2004.

O Apache FOP tem o intuito de tornar documentos XML em uma variedade de formatos prontos para impressão, como por exemplo o PDF, PNG ou até mesmo para HTML. A sua história volta para o primeiro lançamento do XSL do W3C. Embora muitos confundam o XSL com a XSL Transformation language, o XSL foi criado primeiramente em benefício da indústria editorial. Como resultado, a especificação da XSL engloba tanto a linguagem em si (eXtensible Stylesheet Language) quanto a XSL Formatting Objects. A partir do resumo do XSL:

Esta especificação define as características e sintaxe para o Extensible Stylesheet Language (XSL), uma linguagem para expressar estilo. Ela consiste em duas partes:
  1. uma linguagem para transformar documentos XML (XSLT).
  2. um vocabulário XML para especificar semântica de formatação.

O que a maioria imagina do XSL, na verdade é o XSLT, a primeira parte da especificação. A especificação do XSL também define uma mini linguagem para definir como o texto deverá ser impresso no formato XSL Formatting Objects, ou apenas FO, na mesma especificação. (Este é o nome que deu início ao Apache FO Processor, e também ao nome do próprio projeto.)

Embora o CSS 1 tenha sido lançado em 1996, e o CSS2 em 1998, nenhum deles possuem a habilidade para alguns requisitos como notas de rodapé, referências de número de páginas, separar o texto por fluxo de colunas (i.e. o texto fluir de acordo com um certo número de colunas, no lugar de pré dividí-los em DIVs separados). Quando o XSL FO foi lançado em 2001 como parte da especificação XSL, havia poucos processadores disponíveis para processá-lo. O Apache FOP foi um dos primeiros, porém ficou parado na versão 0.20 (lançado em 2003), até o seu reínico na versão FOP 0.93 (lançado em 2007). Na verdade, esta lacuna foi utilizada para demonstrar a capacidade de OSGi em carregar diferentes versões de JARs em um evento OSGi JSIG na Sun alguns anos atrás.

Um exemplo de documento FO parece muito com o XML tradicional, com um namespace fo e delimitador para http://www.w3.org/1999/XSL/Format. Aqui está um exemplo do http://www.renderx.com/tutorial.html (um processador FO comercial):

<?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="my-page">
      <fo:region-body margin="1in"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="my-page">
    <fo:flow flow-name="xsl-region-body">
      <fo:block>Hello, world!</fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

O conteúdo em fo:layout contém o estilo (por exemplo quais são as margens do documento, o local onde a numeração das páginas deverão ser mostradas; ele suporta diversos estilos, logo você pode ter estilos separados para a 'página principal' e para 'página index'), seguido do fo:page-sequence, que corresponde a um conjunto de páginas (e.g. um capítulo). O flow e o block são semelhantes ao div e ao p do HTML.

Embora possa parecer muito detalhado, ele é um formato intermediário de formatos como o MediaWiki ou o WikiText. (o Eclipse WikiText pode ser traduzido para DocBook ou XSL-FO; na verdade, alguns processadores DocBook geram XSL-FO, o que pode ser compilado em PDF através de ferramentas como o Apache FOP). O site do Maven utilizou o Apache FOP para viabilizar a geração de versões em PDF do site através do plugin pdf.

O Apache FOP 1.0 ainda não está completamente compatível com a especificação do XSL FO; uma página de compatibilidade lista maiores informações a respeito do que é suportado atualmente.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

a tradução tem que ser revista... by Rafael Oliveira

...

Re: a tradução tem que ser revista... by Pedro Henrique Santana Mariano

Caro Rafael,

Obrigado pelo comentário, realmente haviam alguns problema. Problemas estes que ocorreram no momento da publicação e nãona revissão. Fizemos uma segunda revisão e alteramos o post. Caso haja alguma melhoria ao seu ver, por favor nos envie um email ou deixe seu comentário.

Todas as nossas traduções são revisadas antes de serem publicar, porém alguns erros as vezes ocorrem.

Obrigado.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

2 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT