public Chap1014() { Console.WriteLine("Chapter 10 Example 14: colored patterns"); // step 1: creation of a document-object Document document = new Document(PageSize.A4, 50, 50, 50, 50); Document.Compress = false; try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Chap1014.pdf", FileMode.Create)); // step 3: we open the document document.Open(); // step 4: we add some content PdfContentByte cb = writer.DirectContent; PdfTemplate tp = cb.CreateTemplate(400, 300); PdfPatternPainter pat = cb.CreatePattern(15, 15, null); pat.Rectangle(5, 5, 5, 5); pat.Fill(); PdfSpotColor spc_cmyk = new PdfSpotColor("PANTONE 280 CV", 0.25f, new CMYKColor(0.9f, .2f, .3f, .1f)); SpotColor spot = new SpotColor(spc_cmyk); tp.SetPatternFill(pat, spot, .9f); tp.Rectangle(0, 0, 400, 300); tp.Fill(); cb.AddTemplate(tp, 50, 50); PdfPatternPainter pat2 = cb.CreatePattern(10, 10, null); pat2.SetLineWidth(2); pat2.MoveTo(-5, 0); pat2.LineTo(10, 15); pat2.Stroke(); pat2.MoveTo(0, -5); pat2.LineTo(15, 10); pat2.Stroke(); cb.SetLineWidth(1); cb.SetColorStroke(new Color(System.Drawing.Color.Black)); cb.SetPatternFill(pat2, new Color(System.Drawing.Color.Red)); cb.Rectangle(100, 400, 30, 210); cb.FillStroke(); cb.SetPatternFill(pat2, new Color(System.Drawing.Color.LightGreen)); cb.Rectangle(150, 400, 30, 100); cb.FillStroke(); cb.SetPatternFill(pat2, new Color(System.Drawing.Color.Blue)); cb.Rectangle(200, 400, 30, 130); cb.FillStroke(); cb.SetPatternFill(pat2, new GrayColor(0.5f)); cb.Rectangle(250, 400, 30, 80); cb.FillStroke(); cb.SetPatternFill(pat2, new GrayColor(0.7f)); cb.Rectangle(300, 400, 30, 170); cb.FillStroke(); cb.SetPatternFill(pat2, new GrayColor(0.9f)); cb.Rectangle(350, 400, 30, 40); cb.FillStroke(); } catch (Exception de) { Console.Error.WriteLine(de.Message); Console.Error.WriteLine(de.StackTrace); } // step 5: we close the document document.Close(); }
// --------------------------------------------------------------------------- /** * Creates a PDF document. */ public byte[] CreatePdf() { using (MemoryStream ms = new MemoryStream()) { // step 1 using (Document document = new Document()) { // step 2 PdfWriter writer = PdfWriter.GetInstance(document, ms); // step 3 document.Open(); // step 4 PdfContentByte canvas = writer.DirectContent; PdfPatternPainter square = canvas.CreatePattern(15, 15); square.SetColorFill(new BaseColor(0xFF, 0xFF, 0x00)); square.SetColorStroke(new BaseColor(0xFF, 0x00, 0x00)); square.Rectangle(5, 5, 5, 5); square.FillStroke(); PdfPatternPainter ellipse = canvas.CreatePattern(15, 10, 20, 25); ellipse.SetColorFill(new BaseColor(0xFF, 0xFF, 0x00)); ellipse.SetColorStroke(new BaseColor(0xFF, 0x00, 0x00)); ellipse.Ellipse(2f, 2f, 13f, 8f); ellipse.FillStroke(); PdfPatternPainter circle = canvas.CreatePattern(15, 15, 10, 20, BaseColor.BLUE); circle.Circle(7.5f, 7.5f, 2.5f); circle.Fill(); PdfPatternPainter line = canvas.CreatePattern(5, 10, null); line.SetLineWidth(1); line.MoveTo(3, -1); line.LineTo(3, 11); line.Stroke(); Image img = Image.GetInstance(RESOURCE); img.ScaleAbsolute(20, 20); img.SetAbsolutePosition(0, 0); PdfPatternPainter img_pattern = canvas.CreatePattern(20, 20, 20, 20); img_pattern.AddImage(img); img_pattern.SetPatternMatrix(-0.5f, 0f, 0f, 0.5f, 0f, 0f); ColorRectangle(canvas, new PatternColor(square), 36, 696, 126, 126); ColorRectangle(canvas, new PatternColor(ellipse), 180, 696, 126, 126); ColorRectangle(canvas, new PatternColor(circle), 324, 696, 126, 126); ColorRectangle(canvas, new PatternColor(line), 36, 552, 126, 126); ColorRectangle(canvas, new PatternColor(img_pattern), 36, 408, 126, 126); canvas.SetPatternFill(line, BaseColor.RED); canvas.Ellipse(180, 552, 306, 678); canvas.FillStroke(); canvas.SetPatternFill(circle, BaseColor.GREEN); canvas.Ellipse(324, 552, 450, 678); canvas.FillStroke(); canvas.SetPatternFill(img_pattern); canvas.Ellipse(180, 408, 450, 534); canvas.FillStroke(); } return(ms.ToArray()); } }