Replace Process Color
View as MarkdownConverts the specified process color into a spot color saving graphics container to the PDF format.
Code Snippet
public static class Extensions
{
public static bool IsBlack(this Color color)
{
var grayColor = (GrayscaleColor)color.Convert(PixelFormat.Format8bppGrayscale);
return grayColor.L < 20;
}
public static void ReplaceProcessColors(this GraphicsContainer container, SpotColor spotColor)
{
foreach (var item in container.Items.OfType<ShapeItem>())
{
if (item.Brush != null && item.Brush is SolidBrush && (item.Brush as SolidBrush).Color.IsBlack())
{
item.Brush = new SolidBrush(spotColor);
}
}
foreach (var item in container.Items.OfType<ContainerItem>())
{
item.GraphicsContainer.ReplaceProcessColors(spotColor);
}
}
}
internal class ReplaceProcessColor
{
public static void Run()
{
using (var reader = new PdfReader("Seal.pdf"))
using (var gc = reader.Frames[0].GetContent())
using (var writer = new PdfWriter("Process2SpotColor.pdf"))
using (var gr = writer.GetGraphics())
{
writer.AddPage(gc.Width, gc.Height, gc.DpiX, gc.DpiY);
var ink = new Ink("PANTONE Red 032 C", new RgbColor(243, 40, 55));
var spotColor = new SpotColor(ink, 255);
gc.ReplaceProcessColors(spotColor);
gr.DrawContainer(gc, 0, 0);
}
}
}
Input
Seal.pdf
DownloadOutput
Process2SpotColor.pdf
DownloadProcess2SpotColor.png
Used APIs
- Aurigma.GraphicsMill.Codecs.PdfFrame.GetContent
- Aurigma.GraphicsMill.Codecs.PdfReader
- Aurigma.GraphicsMill.Codecs.PdfReader.Frames
- Aurigma.GraphicsMill.Codecs.PdfWriter
- Aurigma.GraphicsMill.Codecs.PdfWriter.AddPage(Single,Single,Single,Single)
- Aurigma.GraphicsMill.Codecs.PdfWriter.GetGraphics
- Aurigma.GraphicsMill.Color
- Aurigma.GraphicsMill.Color.Convert(PixelFormat)
- Aurigma.GraphicsMill.Drawing.ContainerItem
- Aurigma.GraphicsMill.Drawing.ContainerItem.GraphicsContainer
- Aurigma.GraphicsMill.Drawing.Graphics.DrawContainer(GraphicsContainer,Single,Single)
- Aurigma.GraphicsMill.Drawing.GraphicsContainer
- Aurigma.GraphicsMill.Drawing.GraphicsContainer.DpiX
- Aurigma.GraphicsMill.Drawing.GraphicsContainer.DpiY
- Aurigma.GraphicsMill.Drawing.GraphicsContainer.Items
- Aurigma.GraphicsMill.Drawing.ShapeItem
- Aurigma.GraphicsMill.Drawing.ShapeItem.Brush
- Aurigma.GraphicsMill.Drawing.SolidBrush
- Aurigma.GraphicsMill.Drawing.SolidBrush.Color
- Aurigma.GraphicsMill.GrayscaleColor
- Aurigma.GraphicsMill.GrayscaleColor.L
- Aurigma.GraphicsMill.Ink
- Aurigma.GraphicsMill.SpotColor