public static PDAppearanceDictionary GetRubberStampAppearance(PDFDocument document, PDFRectangle rect, string subType) { PDAppearanceDictionary pDAppearanceDictionary; string empty = string.Empty; empty = (!System.IO.File.Exists(subType) ? PDFHelper.GetResourceLocation(subType) : subType); if (empty == null) { Console.WriteLine("Cant find rubber stamp"); pDAppearanceDictionary = null; } else { PDImageXObject pDImageXObject = PDImageXObject.createFromFileByContent(new java.io.File(empty), document.PDFBoxDocument); float lowerLeftX = rect.PDFBoxRectangle.getLowerLeftX(); float lowerLeftY = rect.PDFBoxRectangle.getLowerLeftY(); rect.PDFBoxRectangle.getWidth(); rect.PDFBoxRectangle.getHeight(); rect.PDFBoxRectangle.getHeight(); rect.PDFBoxRectangle.getWidth(); PDFormXObject pDFormXObject = new PDFormXObject(document.PDFBoxDocument); pDFormXObject.setResources(new PDResources()); pDFormXObject.setBBox(rect.PDFBoxRectangle); pDFormXObject.setFormType(1); OutputStream outputStream = pDFormXObject.getStream().createOutputStream(); PDFHelper.drawXObject(pDImageXObject, pDFormXObject.getResources(), outputStream, lowerLeftX, lowerLeftY, (float)pDImageXObject.getWidth(), (float)pDImageXObject.getHeight()); outputStream.close(); PDAppearanceStream pDAppearanceStream = new PDAppearanceStream(pDFormXObject.getCOSObject()); PDAppearanceDictionary pDAppearanceDictionary1 = new PDAppearanceDictionary(new COSDictionary()); pDAppearanceDictionary1.setNormalAppearance(pDAppearanceStream); pDAppearanceDictionary = pDAppearanceDictionary1; } return(pDAppearanceDictionary); }