@festvtteam

Добавление текста в существующий pdf — почему переворачивает текст или зеркалит его?

Добрый день!
Необходимо в файлы пдф вписать строки. Использую такой код (из plm-системы):
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 marginŸ = 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 разный результат: в первом текст написан как положен слева внизу в углу, во втором - слева вверху и как будто там (0, 0) причем ось Х направлена вниз, а ось Y в право. в третьем тоже наверху только теперь текст еще и отражен зеркально.
672a8f0570df3673204962.png
Пробовал анализировать команды pdf "cm" чтобы понять в каком положении сейчас матрица, но понял что это без толку. Может кто сталкивался или знает в чем причина таких разных результатов.
  • Вопрос задан
  • 9 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы