Java Tutorial/PDF/Transparency
Версия от 17:44, 31 мая 2010; (обсуждение)
PdfTransparencyGroup
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.CMYKColor;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfGState;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfTransparencyGroup;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
public static void main(String[] args) throws Exception {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
float gap = (document.getPageSize().width() - 400) / 3;
PdfTemplate tp;
PdfTransparencyGroup group;
tp = cb.createTemplate(200, 200);
pictureCircles(0, 0, tp);
group = new PdfTransparencyGroup();
group.setIsolated(true);
group.setKnockout(false);
tp.setGroup(group);
cb.addTemplate(tp, 200 + 2 * gap, 500);
document.close();
}
public static void pictureCircles(float x, float y, PdfContentByte cb) {
PdfGState gs = new PdfGState();
gs.setBlendMode(PdfGState.BM_MULTIPLY);
gs.setFillOpacity(1f);
cb.setGState(gs);
cb.setColorFill(new CMYKColor(0f, 0f, 0f, 0.15f));
cb.circle(x + 125, y + 75, 70);
cb.fill();
cb.circle(x + 125, y + 125, 70);
cb.fill();
}
}