Print Builder

From PlcWiki

Revision as of 16:41, 7 March 2012 by Mcaslava (Talk | contribs)
Jump to: navigation, search

Contents

Popis

Webové řešení tvorby souborů PDF postavené na základě projektu Apache FOP (Formatting Objects Processor).

svn+ssh://user@oko.clever.cz: java/PrintBuilder

Cílem je umožnit tvorbu HTML formulářů, jejichž položky se pouze odešlou jako URL parametry na servlet a "voilá" dokument PDF je hotov a připraven k vytisknutí.

Integrace

Příklady použití

  • Volání servletu metodou POST, který je nasazen samostatně na nějakém dostupném serveru.
  • Způsob "vše v jednom" - zkopírování servletu do webového projektu včetně knihoven atp.

Vytvoření PDF

  • Vytvoření šablony XSL a její umístění do adresáře na který se odkazuje web.xml parametrem "templatedir"
  • Název šablony (název souboru) figuruje v parametru URL "templatename" (bez extenze)
  • Data určená k vyplnění šablony se posílají buď přímo v URL paramentru "xmldata" formou xml dokumentu, nebo jsou použity všechny parametry URL, kde potom klíčem je tag a hodnotou je text

Příklad URL:

localhost:8080/PrintBuilder/Untitled?templatename=my_template
&singleTAG=first&singleTAG=second
&food[0]=milk&food[0]=egg&vehicle[0]=renault&vehicle[0]=mercedes
&food[1]=onion&food[1]=potato&vehicle[1]=fiat&vehicle[1]=subaru

Ilustrace jak by toto URL vypadalo v Javě:

map.put("singleTAG", new String[] { "first", "second" });
map.put("food[0]", new String[] { "milk", "egg" });
map.put("vehicle[0]", new String[] { "renault", "mercedes" });
map.put("food[1]", new String[] { "onion", "potato" });
map.put("vehicle[1]", new String[] { "fiat", "subaru" });

Výsledné XML na serveru:

<root>
  <list>
    <singleTAG>first</singleTAG>
    <part><vehicle>fiat</vehicle><food>onion</food></part>
    <part><food>milk</food><vehicle>renault</vehicle></part>
  </list>
  <list>
    <singleTAG>second</singleTAG>
    <part><vehicle>subaru</vehicle><food>potato</food></part>
    <part><food>egg</food><vehicle>mercedes</vehicle></part>
  </list>
</root>

Tag "list" představuje jednu stránku v PDF a tag "part" je výčet hodnot.

Fonty

fop.xconf

  <fonts>
  <directory>/Users/johndoe/fonts</directory>
  </fonts>
Personal tools