本文将详细介绍如何使用Spire.PDF for Java创建专色文本和专色图形,并为同一专色设置不同的透明度,让着色更有层次感。
import com.spire.pdf.*;
import com.spire.pdf.colorspace.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Point2D;
public class SpotColor {
public static void main(String[] args) {
//新建PdfDocument 对象并添加一个新的页面
PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.getPages().add();
//创建专色
PdfRGBColor pdfRGBColor = new PdfRGBColor(new Color(148,0,211));
PdfSeparationColorSpace cs = new PdfSeparationColorSpace("MySpotColor",pdfRGBColor);
PdfSeparationColor color = new PdfSeparationColor(cs, 1f);
//创建truetype字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 10), true);
//根据颜色创建画刷
PdfSolidBrush brush = new PdfSolidBrush(color);
//绘入图形及文字并着色
page.getCanvas().drawString("着色=1.0", font, brush, new Point2D.Float(160, 160));
page.getCanvas().drawPie(brush, 148, 200, 60, 60, 360, 360);
//将专色透明度设置为0.7,并绘入图片及文字
page.getCanvas().drawString("着色=0.7", font, brush, new Point2D.Float(230, 160));
color = new PdfSeparationColor(cs, 0.7f);
brush = new PdfSolidBrush(color);
page.getCanvas().drawPie(brush, 218, 200, 60, 60, 360, 360);
page.getCanvas().drawString("着色=0.4", font, brush, new Point2D.Float(300, 160));
color = new PdfSeparationColor(cs, 0.4f);
brush = new PdfSolidBrush(color);
page.getCanvas().drawPie(brush, 288, 200, 60, 60, 360, 360);
page.getCanvas().drawString("着色=0.1", font, brush, new Point2D.Float(370, 160));
color = new PdfSeparationColor(cs, 0.1f);
brush = new PdfSolidBrush(color);
page.getCanvas().drawPie(brush, 358, 200, 60, 60, 360, 360);
//保存文档
pdf.saveToFile("output/drawContentWithSpotColor.pdf");
}
}
效果图: