Невозможно получить SpacingAfter для работы с изображением с iTextSharp - PullRequest
1 голос
/ 14 июля 2011

Привет! Я хотел бы добавить немного свободного места после изображения в моем PDF-документе iTextSharp.Но по какой-то причине все, что я пытаюсь сделать, не помешает моему тексту обернуться

Пример изображения

Как вы можете видеть, «читать все ...»не отступает, как остальные

Это кодзин, который должен сделать это:

var brevityBox = iTextSharp.text.Image.GetInstance("http://" + domain + "/ImageGen.ashx?Text=" + brevityScore + "&FontSize=120&&FontStyle=Bold&Font=Calibri&Align=Center&image=/media/images/PDF/BrevityBox.jpg");
brevityBox.ScaleToFit(80f, 220f);
brevityBox.Alignment = Image.TEXTWRAP;
brevityBox.SpacingAfter = 460f;
doc.Add(brevityBox);

Chunk c3 = new Chunk(brevityText, FontFactory.GetFont("Verdana", 12, Font.NORMAL)); ;
Paragraph p3 = new Paragraph();
p3.IndentationLeft = 20;
p3.IndentationRight = 20;

p3.Alignment = Element.ALIGN_LEFT;
p3.Add(c3);
doc.Add(p3);

Просто чтобы доказать точку, SpacingAfter равен 460 баллам.

IndentationRight

отлично работает

Есть идеи?

1 Ответ

0 голосов
/ 19 апреля 2012

Я считаю, что iTextSharp даже не использует свойство SpacingAfter. Я модифицировал метод

iTextSharp.text.pdf.PdfDocument.Add(iTextSharp.text.Image image){}

к этому:

if (imageEnd < 0 || imageEnd < currentHeight + image.ScaledHeight + diff + image.SpacingAfter)
{
    imageEnd = currentHeight + image.ScaledHeight + diff + image.SpacingAfter;
}

Начиная с версии 5.2.1 это была строка 2244 в PdfDocument.cs

...