Halaman

Subscribe:

Main Menu

Rabu, Maret 04, 2009

Java : Template Word

Dalam Project kali ini saya mendapatkan ilmu baru lagi. yaitu membuat laporan bentuk pdf dengan Template dari word. jadi kita membuat templatenya. yaitu design laporannya dari word. terus dari template itu kita mengisikan data-datanya dari database kita. terus kita bisa membuatnya menjadi file pdf. sehingga memudahkan user untuk mau apa aja setelah itu :D. dan juga user bisa mengedit atau membuat templatenya sendiri :D.

cara membuatnya gini nech..
Step 1: Buat Template
1. Buat file microsoft word
2. Pilih menu :Insert -> Field
3. pada kolom Field names list, pilih MergeField.
4. pada textbox Field name masukkan nama field yang akan di generate. contoh saja nama. nanti hasilnya akan tampil seperti ini

<<nama>>



Step 2 : buat Coding javanya :D
nech contoh codenya..


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.softartisans.wordwriter.WordTemplate;

public class WwServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Object[] arrValue = {"Ali Bastomi"};
String[] arrName = {"nama"};

WordTemplate oWW = null;

String templateFile = "/Basic/StringVar/StringVarTemplate.doc";

InputStream iStream = null;

try
{
oWW = new WordTemplate();

ServletContext ctx = this.getServletContext();
iStream = new BufferedInputStream(ctx.getResourceAsStream(templateFile));

oWW.open(iStream);

oWW.setDataSource(arrValue, arrName);

oWW.process();

oWW.save(response, "StringVarOutput.doc", false);
}
catch(Exception ex)
{
response.resetBuffer();
response.getWriter().println("An exception has occurred
" + String.valueOf(ex));
}
finally
{
if(iStream!=null)
iStream.close();
}
}
}


code di atas untuk mengenerate dari template menjadi fileinputstream. setelah itu bisa kita apakan sesuai keinginan kita. misalnya di jadikan file pdf... contoh sourcenya nanti aja dech... kapan2 di lanjut :D hehehehehe..

oh iya untuk perulangan seperti table. bisa kita gunakan fasilitas bookmark :D.

0 komentar: