Привет, ребята. У меня есть случай, когда у меня есть изображение логотипа как часть какой-то иллюстрации ..
Если пользователь загружает новый логотип, у меня есть поле формы, которое больше, чем логотип по умолчанию.
Затем я использую это поле формы для позиционирования нового изображения.
Проблема в том, что мне нужно установить цвет фона этого поля формы на белый, чтобы он покрывал старый логотип, если новое изображение меньше старого логотипа.
Я сделал следующее:
foreach (var imageField in imageReplacements)
{
fields.SetFieldProperty(imageField.Key, "bgcolor", iTextSharp.text.Color.WHITE, null);
fields.RegenerateField(imageField.Key);
PdfContentByte overContent = stamper.GetOverContent(imageField.Value.PageNumber);
float[] logoArea = fields.GetFieldPositions(imageField.Key);
if (logoArea != null)
{
iTextSharp.text.Rectangle logoRect = new iTextSharp.text.Rectangle(logoArea[1], logoArea[2], logoArea[3], logoArea[4]);
var logo = iTextSharp.text.Image.GetInstance(imageField.Value.Location);
if (logo.Width >= logoRect.Width || logo.Height >= logoRect.Height)
{
logo.ScaleToFit(logoRect.Width, logoRect.Height);
}
logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT;
logo.SetAbsolutePosition(logoRect.Left, logoArea[2] + (logoRect.Height - logo.ScaledHeight) / 2);
// left: logoArea[3] - logo.ScaledWidth + (logoRect.Width - logo.ScaledWidth) / 2
overContent.AddImage(logo);
}
}
Проблема заключается в том, что цвет фона поля установлен в белый цвет, а затем изображение не отображается.
Есть ли способ установить порядок наложения на слоях?