예제 #1
0
        public void DecoratePdf(string inputFile, string outputFile)
        {
            using var pdfReader = new PdfReader(inputFile);
            using var pdfWriter = new PdfWriter(outputFile);
            var pdfDocument = new PdfDocument(pdfReader, pdfWriter);
            var totalPages  = pdfDocument.GetNumberOfPages();

            Console.WriteLine($"Total number of pages: {pdfDocument.GetNumberOfPages()}");

            for (var i = 1; i <= totalPages; i++)
            {
                var page       = pdfDocument.GetPage(i);
                var dictionary = page.GetPdfObject();
                var pdfObject  = dictionary.Get(PdfName.Contents);
                if (pdfObject.GetType().Equals(typeof(PdfStream)))
                {
                    var pdfStream    = (PdfStream)pdfObject;
                    var data         = pdfStream.GetBytes();
                    var replacedData = JavaUtil.GetStringForBytes(data)
                                       .Replace(PdfFormation.TOTAL_PAGE_TEMPLATE, totalPages.ToString());
                    pdfStream.SetData(Encoding.UTF8.GetBytes(replacedData));
                }
            }

            pdfDocument.Close();
        }