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());
        }
Beispiel #2
0
        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();
        }