private byte[] RemoverCarimboLateral(byte[] arquivo, float largura, float limiteMaximo) { using MemoryStream readingStream = new MemoryStream(arquivo); using PdfReader pdfReader = new PdfReader(readingStream); using MemoryStream writingStream = new MemoryStream(); using PdfWriter pdfWriter = new PdfWriter(writingStream); using PdfDocument pdfDocument = new PdfDocument(pdfReader, pdfWriter); int numberOfPages = pdfDocument.GetNumberOfPages(); for (int i = 1; i <= numberOfPages; i++) { PdfPage page = pdfDocument.GetPage(i); page.SetIgnorePageRotationForContent(true); Rectangle pageSize = pdfDocument.GetPage(i).GetPageSizeWithRotation(); float offset = pageSize.GetWidth() * largura; if (offset > limiteMaximo) { offset = limiteMaximo; } float numeroLinhas = 4f; float intervalo = offset / (numeroLinhas + 1f); float posicaoIncicial = pageSize.GetWidth() - offset; IList <PdfCleanUpLocation> cleanUpLocations = new List <PdfCleanUpLocation>(); for (int j = 1; j <= numeroLinhas; j++) { Rectangle rectangle = new Rectangle( posicaoIncicial + intervalo, 0, 0.1f, pageSize.GetHeight() ); PdfCleanUpLocation location = new PdfCleanUpLocation(i, rectangle); posicaoIncicial = posicaoIncicial + intervalo; cleanUpLocations.Add(location); } PdfCleaner.CleanUp(pdfDocument, cleanUpLocations); } pdfDocument.Close(); return(writingStream.ToArray()); }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); IList <PdfCleanUpLocation> cleanUpLocations = new List <PdfCleanUpLocation>(); // The arguments of the PdfCleanUpLocation constructor: the number of page to be cleaned up, // a Rectangle defining the area on the page we want to clean up, // a color which will be used while filling the cleaned area. PdfCleanUpLocation location = new PdfCleanUpLocation(1, new Rectangle(97, 405, 383, 40), ColorConstants.GRAY); cleanUpLocations.Add(location); PdfCleanUpTool cleaner = new PdfCleanUpTool(pdfDoc, cleanUpLocations); cleaner.CleanUp(); pdfDoc.Close(); }