import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.Map; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.krysalis.barcode4j.impl.code128.Code128Bean; import org.krysalis.barcode4j.impl.code39.Code39Bean; import org.krysalis.barcode4j.impl.pdf417.PDF417Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.client.j2se.MatrixToImageConfig; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class PDFBarcode { public static void main(String[] args) { try { // Creating PDF document object String myPDF = "docs/barcode_doc.pdf"; PDDocument document = new PDDocument(); PDPage page = new PDPage(PDRectangle.LETTER); document.addPage(page); float margin = 25; float y = 700; // add CODE 128 Barcode addBarcode128(document, page, "123456789", margin, y); // add CODE 39 Barcode y = y - 100; addBarcode39(document, page, "123456789", margin, y); // 2D Barcode format PDF417 y = 700; addBarcodePdf417(document, page, "123456789", margin + 300, y); // add QRCode y = y - 100; addQRCode(document, page, "https://www.mysamplecode.com", margin + 300, y); // Saving the document document.save(myPDF); // Closing the document document.close(); } catch (Exception e) { e.printStackTrace(); } } private static void addBarcode128(PDDocument document, PDPage page, String text, float x, float y) { try { PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); int dpi = 300; BitmapCanvasProvider canvas = new BitmapCanvasProvider(dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); Code128Bean code128Bean = new Code128Bean(); code128Bean.generateBarcode(canvas, text.trim()); canvas.finish(); BufferedImage bImage = canvas.getBufferedImage(); PDImageXObject image = JPEGFactory.createFromImage(document, bImage); contentStream.drawImage(image, x, y, 100, 50); contentStream.close(); } catch (Exception e) { e.printStackTrace(); } } private static void addBarcode39(PDDocument document, PDPage page, String text, float x, float y) { try { PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); int dpi = 300; BitmapCanvasProvider canvas = new BitmapCanvasProvider(dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); Code39Bean code39Bean = new Code39Bean(); code39Bean.generateBarcode(canvas, text.trim()); canvas.finish(); BufferedImage bImage = canvas.getBufferedImage(); PDImageXObject image = JPEGFactory.createFromImage(document, bImage); contentStream.drawImage(image, x, y, 100, 50); contentStream.close(); } catch (Exception e) { e.printStackTrace(); } } private static void addBarcodePdf417(PDDocument document, PDPage page, String text, float x, float y) { try { PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); int dpi = 300; BitmapCanvasProvider canvas = new BitmapCanvasProvider(dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); PDF417Bean pdf417Bean = new PDF417Bean(); pdf417Bean.generateBarcode(canvas, text.trim()); canvas.finish(); BufferedImage bImage = canvas.getBufferedImage(); PDImageXObject image = JPEGFactory.createFromImage(document, bImage); contentStream.drawImage(image, x, y, 100, 50); contentStream.close(); } catch (Exception e) { e.printStackTrace(); } } private static void addQRCode(PDDocument document, PDPage page, String text, float x, float y) { try { PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); MaphintMap = new HashMap (); hintMap.put(EncodeHintType.MARGIN, 0); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); BitMatrix matrix = new MultiFormatWriter().encode( new String(text.getBytes("UTF-8"), "UTF-8"), BarcodeFormat.QR_CODE, 100, 100, hintMap); MatrixToImageConfig config = new MatrixToImageConfig(0xFF000001, 0xFFFFFFFF); BufferedImage bImage = MatrixToImageWriter.toBufferedImage(matrix, config); PDImageXObject image = JPEGFactory.createFromImage(document, bImage); contentStream.drawImage(image, x, y, 75, 75); contentStream.close(); } catch (Exception e) { e.printStackTrace(); } } }
All one can think and do in a short time is to think what one already knows and to do as one has always done!
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.