Example usage for com.itextpdf.text Image setImageMask

List of usage examples for com.itextpdf.text Image setImageMask

Introduction

In this page you can find the example usage for com.itextpdf.text Image setImageMask.

Prototype

public void setImageMask(final Image mask) throws DocumentException 

Source Link

Document

Sets the explicit masking.

Usage

From source file:utility.pdfRead.java

public void readPdfFromUrl(String url) throws MalformedURLException, Exception {
    URL urlnya = new URL(url);
    String namafile;//from   www  .j a v  a2s  .co  m
    Date d = new Date();
    // kode 
    String dataAkun = "Surat Keterangan Domisili Usaha dari Kelurahan dan Kecamatan yang masih berlaku atau Fotocopy dilegalisir Kecamatan";
    pdfRead myEncryptor = new pdfRead();
    String dataAkunEnkripsi = myEncryptor.encrypt(dataAkun);
    String dataAkunDekripsi = myEncryptor.decrypt(
            "AYxJhAMLk4fftR5XcqYDoUO4GaMY7sNX19k5SRxWWedGj6RB3tSUUmtdx1KHYf19EE1rLonm/3XikRnNoG/Q0rXkbiXO3QXHnmn2douw6SSwrirgYGoHmR3U4wmGUCxXqAERQFd5rdCZcK0CII7sPsb2uiTYqA97");

    System.out.println("Text Asli: " + dataAkun);
    System.out.println("Text Terenkripsi :" + dataAkunEnkripsi);
    System.out.println("Text Terdekripsi :" + dataAkunDekripsi);

    // kode 
    byte[] ba1 = new byte[5 * 1024];
    //        byte[] ba1 = new byte[10*1024];
    int baLength;
    InputStream is1 = null;
    ByteArrayOutputStream bios = new ByteArrayOutputStream();
    ByteArrayOutputStream biosPlusWatermark = new ByteArrayOutputStream();
    ByteArrayOutputStream biosPlusWatermarkQr = new ByteArrayOutputStream();
    AMedia amedia = null;
    try {

        //        report.setSrc(url);
        //            ssl disable
        // Create a trust manager that does not validate certificate chains
        TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }

            public void checkClientTrusted(X509Certificate[] certs, String authType) {
            }

            public void checkServerTrusted(X509Certificate[] certs, String authType) {
            }
        } };

        // Install the all-trusting trust manager
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

        // Create all-trusting host name verifier
        HostnameVerifier allHostsValid = new HostnameVerifier() {
            public boolean verify(String hostname, SSLSession session) {
                return true;
            }
        };

        // Install the all-trusting host verifier
        HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);

        URLConnection urlConn = urlnya.openConnection();
        try {

            // Read the PDF from the URL and save to a local file
            is1 = urlnya.openStream();
            while ((baLength = is1.read(ba1)) != -1) {
                bios.write(ba1, 0, baLength);
            }
        } catch (Exception e) {
        } finally {

            is1.close();
            bios.close();
        }

        // add watermark
        try {
            PdfReader reader = new PdfReader(bios.toByteArray());
            int n = reader.getNumberOfPages();
            // create a stamper that will copy the document to a new file
            try {
                // Read the PDF from the URL and save to a local file
                is1 = urlnya.openStream();
                while ((baLength = is1.read(ba1)) != -1) {
                    biosPlusWatermark.write(ba1, 0, baLength);
                }
            } catch (Exception e) {
            } finally {

                is1.close();
                biosPlusWatermark.close();
            }

            PdfStamper stamp = new PdfStamper(reader, biosPlusWatermark, '\0', true);
            int i = 0;
            PdfContentByte under;

            Image img = Image.getInstance("img/watermark.png");
            img.setTransparency(new int[] { 0x00, 0x10 });
            img.setAbsolutePosition(0, 0);
            while (i < n) {
                i++;
                under = stamp.getOverContent(i);
                under.addImage(img);
            }
            stamp.close();
        } catch (Exception e) {
            System.out.println("err watermark:" + e);
            amedia = new AMedia("Dokumen", "pdf", "application/pdf", bios.toByteArray());
        }
        // add QRcode
        try {
            PdfReader reader = new PdfReader(biosPlusWatermark.toByteArray());

            int n = reader.getNumberOfPages();
            BarcodeQRCode qrcode = new BarcodeQRCode(dataAkunEnkripsi, 50, 50, null);
            Image image = qrcode.getImage();
            Image mask = qrcode.getImage();
            mask.makeMask();
            image.setImageMask(mask);
            // create a stamper that will copy the document to a new file
            try {
                // Read the PDF from the URL and save to a local file
                is1 = urlnya.openStream();
                while ((baLength = is1.read(ba1)) != -1) {
                    biosPlusWatermarkQr.write(ba1, 0, baLength);
                }
            } catch (Exception e) {
            } finally {
                is1.close();
                biosPlusWatermarkQr.close();
            }

            PdfStamper stamp = new PdfStamper(reader, biosPlusWatermarkQr, '\0', false);
            int i = 0;
            PdfContentByte under;
            Image img = Image.getInstance(image);
            img.setTransparency(new int[] { 0x00, 0x10 });
            img.setAbsolutePosition(0, 0);
            while (i < n) {
                i++;
                under = stamp.getOverContent(i);
                under.addImage(img);
            }
            stamp.close();
            amedia = new AMedia("Dokumen", "pdf", "application/pdf", biosPlusWatermarkQr.toByteArray());
        } catch (Exception e) {
            System.out.println("err qrcode:" + e);
            amedia = new AMedia("Dokumen", "pdf", "application/pdf", bios.toByteArray());
        }

        report.setContent(amedia);

    } catch (Exception e) {
        System.out.println("url tidak dapat diakses");
    }

}