Замена чисел в формате PDF на IText7 с использованием C# - PullRequest
0 голосов
/ 06 января 2020

Я создаю PDF, и на первой странице указывается количество существующих страниц. Только после рендеринга всего содержимого я узнаю общее количество страниц.

Последний шаг - замена текста на первой странице общим количеством страниц, но я сталкиваюсь с проблемой, поскольку могу заменить текст без любая проблема, но не числа.

Это мой код:

        public byte[] AddTotalPageNumber(byte[] document)
        {
            using (var _pdfReader = new PdfReader(new MemoryStream(document)))
            using (var _stream = new MemoryStream())
            using (var _pdfWriter = new PdfWriter(_stream))
            using (var _pdfDocument = new PdfDocument(_pdfReader, _pdfWriter))
            {

                var coverPage = _pdfDocument.GetFirstPage();
                var dict = coverPage.GetPdfObject();
                var obj = dict.Get(PdfName.Contents);

                if (obj.GetType() == typeof(PdfStream))
                {
                    PdfStream stream = (PdfStream)obj;
                    byte[] data = stream.GetBytes(true);
                    var stringData = Encoding.GetEncoding(1252).GetString(data).Replace("NUM", "S19", StringComparison.InvariantCulture);
                    stream.SetData(Encoding.GetEncoding(1252).GetBytes(stringData));
                }

                _pdfDocument.Close();

                return _stream.ToArray();
            }            
        }

Только S в строке замены отображается в окончательном PDF.

Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...