private static Cell CreateProfilePicture(PdfDocument pdfDocument) { var pdfFormXObject = new PdfFormXObject(new Rectangle(100, 100)); var pdfCanvas = new PdfCanvas(pdfFormXObject, pdfDocument); pdfCanvas.SaveState(); // Setting color to the circle var color = new DeviceRgb(255, 255, 255); pdfCanvas.SetColor(color, true); // creating a circle pdfCanvas.Circle(50, 50, 50); pdfCanvas.Fill(); var rect = new Rectangle(pdfFormXObject.GetWidth() - 100, pdfFormXObject.GetHeight() - 90, 100, 75); pdfCanvas.Rectangle(rect); pdfCanvas.RestoreState(); var paragraph = new Paragraph("302\r\nPicture\r\n not available").SetTextAlignment(TextAlignment.CENTER).SetFontColor(ColorConstants.BLACK); using (var c = new Canvas(pdfCanvas, pdfDocument, rect, true)) { c.Add(paragraph); c.Close(); } var image = new Image(pdfFormXObject).SetHeight(100).SetWidth(100).SetHorizontalAlignment(HorizontalAlignment.CENTER); var cell = new Cell().SetPaddingTop(Spacing).SetPaddingBottom(Spacing).Add(image); return(cell); }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); Barcode128 code128 = new Barcode128(pdfDoc); code128.SetCode("12345XX789XXX"); code128.SetCodeType(Barcode128.CODE128); PdfFormXObject xObject = code128.CreateFormXObject(ColorConstants.BLACK, ColorConstants.BLACK, pdfDoc); float x = 36; float y = 750; float width = xObject.GetWidth(); float height = xObject.GetHeight(); // Draw the rectangle with set background color and add the created barcode object. PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage()); canvas.SaveState(); canvas.SetFillColor(ColorConstants.LIGHT_GRAY); canvas.Rectangle(x, y, width, height); canvas.Fill(); canvas.RestoreState(); canvas.AddXObjectAt(xObject, 36, 750); pdfDoc.Close(); }
/// <exception cref="System.Exception"/> private byte[] CreatePdfWithRotatedXObject(String xobjectText) { MemoryStream baos = new MemoryStream(); PdfDocument pdfDocument = new PdfDocument(new PdfWriter(baos).SetCompressionLevel(0)); Document document = new Document(pdfDocument); document.Add(new Paragraph("A")); document.Add(new Paragraph("B")); PdfFormXObject template = new PdfFormXObject(new Rectangle(20, 100)); PdfCanvas canvas = new PdfCanvas(template, pdfDocument); canvas.SetStrokeColor(Color.GREEN).Rectangle(0, 0, template.GetWidth(), template.GetHeight()).Stroke(); AffineTransform tx = new AffineTransform(); tx.Translate(0, template.GetHeight()); tx.Rotate((float)(-90 / 180f * Math.PI)); canvas.ConcatMatrix(tx).BeginText().SetFontAndSize(PdfFontFactory.CreateFont(FontConstants.HELVETICA), 12) .MoveText(0, template.GetWidth() - 12).ShowText(xobjectText).EndText(); document.Add(new Image(template).SetRotationAngle(Math.PI / 2)).Add(new Paragraph("C")); document.Close(); return(baos.ToArray()); }
protected void ManipulatePdf(string dest) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); Document doc = new Document(pdfDoc); PdfFormXObject formXObject = new PdfFormXObject(new Rectangle(120, 80)); new PdfCanvas(formXObject, pdfDoc).SetFillColor(ColorConstants.RED) .Rectangle(0, 0, formXObject.GetWidth(), formXObject.GetHeight()) .Fill(); doc.Add(new Paragraph("Option 1:")); Table table = new Table(UnitValue.CreatePercentArray(3)).UseAllAvailableWidth(); table.AddCell("A rectangle:"); table.AddCell(new Cell().Add(new Image(formXObject).SetAutoScale(true)).SetPadding(10)); table.AddCell("The rectangle is scaled to fit inside the cell, you see a padding."); doc.Add(table); doc.Add(new Paragraph("Option 2:")); table = new Table(UnitValue.CreatePercentArray(3)).UseAllAvailableWidth(); table.AddCell("A rectangle:"); Cell cell = new Cell().Add(new Image(formXObject)); table.AddCell(cell); table.AddCell("The rectangle keeps its original size, but can overlap other cells in the same row."); doc.Add(table); doc.Add(new Paragraph("Option 3:")); table = new Table(UnitValue.CreatePercentArray(3)).UseAllAvailableWidth(); table.AddCell("A rectangle:"); cell = new Cell().Add(new Image(formXObject).SetAutoScale(true)); table.AddCell(cell); table.AddCell("The rectangle is scaled to fit inside the cell, no padding."); doc.Add(table); doc.Close(); }
/// <exception cref="System.Exception"/> internal virtual byte[] CreatePdfWithXObject(String xobjectText) { MemoryStream byteStream = new MemoryStream(); PdfDocument pdfDocument = new PdfDocument(new PdfWriter(byteStream).SetCompressionLevel(0)); Document document = new Document(pdfDocument); document.Add(new Paragraph("A")); document.Add(new Paragraph("B")); PdfFormXObject template = new PdfFormXObject(new Rectangle(100, 100)); new PdfCanvas(template, pdfDocument).BeginText().SetFontAndSize(PdfFontFactory.CreateFont(StandardFonts.HELVETICA ), 12).MoveText(5, template.GetHeight() - 5).ShowText(xobjectText).EndText(); document.Add(new Image(template)); document.Add(new Paragraph("C")); document.Close(); return(byteStream.ToArray()); }