Я использую ITextSharp для создания PDF, и возникла ситуация, когда необходимо использовать DirectContent через ColumnText.
Проблема в том, что после записи текста через объект ColumnText объект PdfDocument.GetVerticalPosition не обновлялся? Смотрите следующий тест, который не проходит:
public void TestGetVerticalPositionIsUpdated()
{
PdfContentByte cb = Writer.DirectContent;
var columnText = new ColumnText(cb);
float position1 = Writer.GetVerticalPosition(true);
columnText.SetSimpleColumn(Document.Left,
Document.Bottom,
Document.Right,
position1,
0,
Element.ALIGN_JUSTIFIED);
columnText.AddText(new Phrase("Test test test test test\nTest test test test test"));
columnText.Go();
float position2 = Writer.GetVerticalPosition(true);
Assert.AreEqual(position1, position2);
}
Есть ли возможность сообщить автору или документу об обновлении документов currentHeight.
Первичным решением было использовать PdfDocument.SetVerticalPosition, если оно существовало только: -)
Или я неправильно понимаю всю концепцию использования DirectContent?
Мне кажется, что вы не можете использовать PdfDocument. Добавьте после добавления содержимого в DirectContent, если текущая позиция Y в документе не может быть обновлена или не обновляется автоматически.