package global;

import java.awt.Color;
import java.io.*;

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;


public class SoftMaskDictionary {
    
    
    /**
     * @param args
     */
    public static void main(String[] args) {
		System.out.println("Soft-Mask Dictionary");
    	Document document = new Document(PageSize.A4, 50, 50, 50, 50);
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:\\transparency4.pdf"));
            document.open();
            BaseFont bf = BaseFont.createFont("Helvetica", "Cp1252", false);
            PdfContentByte cb = writer.getDirectContent();
            PdfTemplate tp = cb.createTemplate(400, 400);
            PdfTransparencyGroup group = new PdfTransparencyGroup();
            group.put(new PdfName("CS"),new PdfName("DeviceRGB"));
            tp.setGroup(group);
            byte gradient[] = new byte[256 * 256];
            for (int k = 0; k < 256 * 256; ++k)
                gradient[k] = (byte)k;
            Image smask = Image.getInstance(256, 256, 1, 8, gradient);
            smask.setAbsolutePosition(100, 100);
            tp.addImage(smask);
            PdfDictionary sdic = new PdfDictionary();
            sdic.put(PdfName.S, new PdfName("Alpha"));
            sdic.put(new PdfName("G"), tp.getIndirectReference());
            PdfGState gs1 = new PdfGState();
            gs1.put(PdfName.SMASK, sdic);
            cb.setGState(gs1);
            
            PdfTemplate tp1 = cb.createTemplate(400,400);
            PdfTransparencyGroup group1 = new PdfTransparencyGroup();
            tp1.setGroup(group1);
            tp1.setColorFill(Color.RED);
            tp1.beginText();
            tp1.setFontAndSize(bf, 96);
            tp1.setTextMatrix(100, 100);
            tp1.showText("Hello");
            tp1.endText();
            Image img = Image.getInstance("C:/london.jpg");
            img.setAbsolutePosition(100, 110);
            img.scaleAbsolute(100.0f,100.0f);
            tp1.addImage(img);

            cb.addTemplate(tp1,0,0);
            document.close();
            System.out.println("Finished.");
        }
        catch (Exception de) {
            de.printStackTrace();
        }
    }
}
