import java.awt.Color;
import java.io.*;

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;

public class smaskgs {
    
    
    public static void main(String[] args) {
        Document document = new Document(PageSize.A4, 50, 50, 50, 50);
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:\\transparency2.pdf"));
            document.open();
            BaseFont bf = BaseFont.createFont("Helvetica", "Cp1252", false);
            PdfContentByte cb = writer.getDirectContent();
            PdfTemplate tp = cb.createTemplate(256, 256);
            PdfTransparencyGroup group = new PdfTransparencyGroup();
            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(0, 0);
            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);
            cb.setColorFill(Color.RED);
            cb.beginText();
            cb.setFontAndSize(bf, 96);
            cb.setTextMatrix(50, 50);
            cb.showText("Hello");
            cb.endText();
            
            document.close();
            System.out.println("Finished.");
        }
        catch (Exception de) {
            de.printStackTrace();
        }
    }
}
