Seam ile pdf üretimi

Seam ile pdf üretmek için ilgili configurasyon ve ornek sayfa aşağıda bulunuyor. Bunun için arka planda itext kütüphanesini kullanıyor.

Öncelikle components.xml içerisinde aşağıdaki tanımı yapmalıyız.

    <pdf:document-store use-extensions="true" error-page="/pdfHata.seam" />

components.xml içerisinde namespace tanımı muhtemelen bulunmuyordur bunun için aşağıdaki namespace i ekleyebilirsiniz.

    xmlns:pdf="http://jboss.com/products/seam/pdf"

aynı şekilde schema tanımı da aşağıdaki şekilde eklenmelidir.

    http://jboss.com/products/seam/pdf http://jboss.com/products/seam/pdf-2.0.xsd

web.xml içerisine servlet tanımı yapılması gerekiyor örneği aşağıda bulunuyor.

    <servlet>
     <servlet-name>Document Store Servlet</servlet-name>
     <servlet-class>
      org.jboss.seam.pdf.DocumentStoreServlet
     </servlet-class>
    </servlet>
    <servlet-mapping>
     <servlet-name>Document Store Servlet</servlet-name>
     <url-pattern>*.pdf</url-pattern>
    </servlet-mapping>



Son olarak “WEB-INF\lib\” klasörü içerisine “itext.jar” kütüphanesi eklenmelidir bu kütüphaneleri “jboss-seam-2.0.3.CR1\lib\” dizini altında bulabilirsiniz.
Pdf çıktısı için “WebContent” altında “demoPDF.xhtml” isminde bir dosya oluşyuruyoruz deploy sonrası “http://localhost:8080/demo/demoPDF.seam” linkinden pdf dosyamızı gösterebiliriz.

Örnek demoPDF.xhtml dosyası.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <p:document xmlns:p="http://jboss.com/products/seam/pdf" title="Merhaba Dunya">
     <p:chapter number="1">
      <p:title>
       <p:paragraph>Merhaba</p:paragraph>
      </p:title>
      <p:paragraph>Deneme amacli bir yazı </p:paragraph>
     </p:chapter>
     <p:chapter number="2">
      <p:title>
       <p:paragraph>İkinci sayfa</p:paragraph>
      </p:title>
      <p:paragraph>Deneme amaçlı ikinci sayfanın yazısı</p:paragraph>
     </p:chapter>
    </p:document>



Üst başlık ve alt başlık oluşturmak

    <p:chapter number="2">
     <p:header alignment="center">Seam Deneme</p:header>
     <p:title>
      <p:paragraph>İkinci sayfa</p:paragraph>
     </p:title>
     <p:paragraph>Deneme amaçlı ikinci sayfanın yazısı</p:paragraph>
     <p:footer borderWidthTop="1" borderColorTop="blue"
             borderWidthBottom="0" alignment="center">
         Deneme dökümanı [<p:pageNumber />]
     </p:footer>
    </p:chapter>



Facelet ile dinamik pdf çıktılarıda üretebilirsiniz bunun için facelet ui kütüphanesini kullanabilirsiniz.
örnek

    <p:document xmlns:p="http://jboss.com/products/seam/pdf"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                title="Hello">
       <p:list style="numbered">
          <ui:repeat value="#{kullanicilar}" var="kullanici">
             <p:listItem>#{kullanici.ad}</p:listItem>
          </ui:repeat>
       </p:list>
    </p:document>



Pdf ortamında grafik üretimi
Öncelikle “WEB-INF\lib\” dizini altına “jfreechart.jar” ve “jcommon.jar” kütüphanelerini kopyalamamız gerekiyor bu kütüphaneleri yine “jboss-seam-2.0.3.CR1\lib\” altında bulabilirsiniz.
Örnek

    <p:piechart title=“Parite" circular="false" direction="anticlockwise"
    startAngle="30" labelGap="0.1" labelLinkPaint="red">
       <p:series key="Prices">
          <p:data key="2003" columnKey="2003" value="7.36" />
          <p:data key="2004" columnKey="2004" value="11.50" />
          <p:data key="2005" columnKey="2005" value="34.625" />
          <p:data key="2006" columnKey="2006" value="76.30" />
          <p:data key="2007" columnKey="2007" value="85.05" />
       </p:series>
    </p:piechart>



Dinamik pdf üretimi.

    <p:piechart title="Kullanicilar" circular="false" direction="anticlockwise"
    startAngle="30" labelGap="0.1" labelLinkPaint="red">
       <p:series key="Prices">
          <ui:repeat value="#{kullanicilar}" var="kullanici">
             <p:data key="#{kullanici.ad}" columnKey="#{kullanici.yil}" value="#{kullanici.value}" />
          </ui:repeat>
       </p:series>
    </p:piechart>



Barcode cıktısı üretimi

    <p:barCode type="code128"
               barHeight="80"
               textSize="20"
               code="(10)45566(17)040301"
               codeType="code128_ucc"
               altText="Ürün İsmi" />



Örneklerin pdf çıktısı


  1. Nov 27th, 2008 at 15:00 | #1

    Pdf oluşturma ile ilgilenenler jasper report u inceleyebilirler

    http://jasperforge.org/

  2. Nov 27th, 2008 at 15:08 | #2

    Vakit bulabilirsem seam – jasper entegrasyonu ile ilgili de bir ornek hazirlamayı planlıyorum.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>