Не получается расположить текст выше изображения

public void AddText3 (FileDesc fDesc, MemoryStream outputPdfStream)
{
    using (var input PdfStream = new MemoryStream())
    using (var srcStream = fDesc. DownloadingDataStream )
    {
        srcStream.Copy( inputPdfStream); 
        inputPdfStream.Position = 0;
        using (var reader = new iText.Kernel.pdf.PdfReader (inputPdfStream) )
        using (var writer = new iText.Kernel.Pdf.PdfWriter (outputPdfStream)) 
        using (var pdfDoc = new iText.Kernel.Pdf.PdfDocument (reader, writer))
        {
            //всего листов (для цикла)
            var numberOfPages = pdfDoc.GetNumberOfPages();
            //Шрифт
            string fontPath = Path.Combine( Environment.GetFolderPath( Environment.Special Folder.Fonts ), "arial.ttf" );
            var font = iText.Kernel.Font.Pdf FontFactory.CreateFont (fontPath, iText.10.Font.PdfEncodings.IDENTITY_H, true); // Высота шрифта
            var fontSize = 14f;
            //Отступы для надписи var marginx = 20;
            var marginY = 20;
            //Надпись
            string text = "Учтенная копия";
            // Высота области в которой будет надпись
            var textWidth = font.GetWidth (text, fontSize);
            for (var i = 1; i<=numberOfPages; i++)
            {
                //лист
                var page = pdfDoc.GetPage(i);
                var canvas = new iText.Kernel.Pdf.Canvas.PdfCanvas (page.NewContentStreamAfter(), page.GetResources(), pdfDoc);
                var y = page.GetPageSizeWithRotation().GetHeight() - marginy - fontSize;
                canvas.SaveState();
                canvas
                    .SetFontAndSize (font, fontSize)
                    .BeginText()
                        .MoveText(0, 0)
                        .ShowText (text)
                    .EndText();
                canvas.RestoreState();

            }
        }
    }
}   

В некоторых pdf явно отсканированных данные не проявляются, хотя на других подобных pdf текст располагается где нужно. Не пойму что мешает - ведь NewContentStreamAfter располагает canvas выше всего предыдущего. Причем если этот файл распечатать с помощью pdf24 и применив этот код проставляемые буквы выводятся поверх картинки.


Ответы (0 шт):