Tuesday 5 May 2015

Generate Barcode in ADF 12C

Generating Bar code in ADF12c

In this tutorial I'll show you learn how to generate Bar code Image for any Number(Bar code) in ADF 12c.
we will create a fusion web application add one jar file barcode4j-2.1.jar  to project class path, which has Main class to generate bar code.



  • Here I have generated a ImageServlet.Java class inside the barcode package and written a small code like.

package barcode;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.ByteArrayOutputStream;
import javax.imageio.ImageIO;

import javax.servlet.ServletException;
import org.krysalis.barcode4j.impl.code39.Code39Bean;
import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
import org.krysalis.barcode4j.tools.UnitConv;

public class ImageServlet extends HttpServlet {
    private static final String CONTENT_TYPE = 
        "image/x-png; charset=utf-8";
    final int dpi = 150;
    /**
     * @param config
     * @throws ServletException
     */
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    /**
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest request, 
                      HttpServletResponse response) throws ServletException, 
          
                                                              IOException {
             try {
         response.setContentType(CONTENT_TYPE);
         String barcodeText = request.getParameter("barcodeText").trim();
         OutputStream os = response.getOutputStream();
          if (barcodeText.isEmpty()) 
              return;
          Code39Bean bean = new Code39Bean();
        
          bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi)); 
          bean.setWideFactor(3);
          bean.doQuietZone(false);
            BitmapCanvasProvider canvas = new BitmapCanvasProvider(
                     null, "image/x-png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0);
              bean.generateBarcode(canvas,barcodeText);
            canvas.finish();
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    ImageIO.write(  canvas.getBufferedImage(), "png", baos );
                    baos.flush();
                    byte[] imageInByte = baos.toByteArray();
                    baos.close();
                    for(int i=0;i<imageInByte.length;i++)
                    os.write((int)imageInByte[i]);   
                os.close();
          
        }  catch (Exception e) {
             System.out.println("calll1 "+e.toString());
         e.printStackTrace();          
         }
         
    }
}

  • I have mapped sevlet class in web.xml 
                                            


  • Here  I have to generated a bar code of Amit450.
                                           


7 comments:

Carlos said...

Hello Amit,
I´ve downloaded, unzipped and ran your demo.
It didn´t rendered the barcode.
I got error:]] Root cause of ServletException.
java.lang.NoClassDefFoundError: org/krysalis/barcode4j/impl/code39/Code39Bean
at barcode.ImageServlet.doGet(ImageServlet.java:77)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
Truncated. see log file for complete stacktrace
What it is?
Please, be aware this is my first approach to this.
Regards
Carlos

Carlos said...

Good Morning,
Just to tell that i was already able to copy your demo and is running.
Thanks for the sample, it´s very useful.
All the best.
Regards
Carlos

Amit said...

Sorry Carlos I didn't see your comments.
Might be you didn't included the jar for Code39Bean, so class is not available.

Amit said...

Thanks Carlos keeping you new many post :)

Anonymous said...

how can i get the Code39Bean ??

Jim Green said...

Barcode generate for VB is very good and must be forwarded to other developers so that everyone can learn this method.

Vale Co Xenia said...

Great Article
B.Tech Final Year Projects for CSE in Python
FInal Year Project Centers in Chennai


Python Training in Chennai
Python Training in Chennai

Eclipse With Python

Hi Guys, Today i'll share how to start python project in eclipse IDE. to start Py development in eclipse we need to add Py Dev plugi...