Я создаю 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.
Заранее спасибо за помощь.