Есть ли у кого-нибудь идеи о том, как установить цвет фона в прямоугольнике PdfSignatureAppearance в iTextSharp? Я создаю объект PdfSignatureAppearance и могу установить его позиционирование на странице, но прямоугольник имеет только прозрачный фон. Я пытаюсь применить цвет (на самом деле).не удалось установить цвет фона на внешний вид iTextSharp
Я попытался создать новый iTextSharp.text.Rectangle, а затем установить rect.BackgroundColor = new BaseColor(System.Drawing.Color.Yellow);
. Это не работает. Я видел, как кто-то другой пытался что-то подобное, применяя стили к слою2 объекта внешнего вида подписи. Я пробовал их без везения.
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
sigAppLayer2.SetRGBColorFill(255, 0, 0);
sigAppLayer2.SetGrayFill(2);
sigAppLayer2.BoundingBox.BackgroundColor = new BaseColor(System.Drawing.Color.Yellow);
В любое время, когда я пытаюсь изменить один из вышеуказанных изменений стиля на слой2, видимая подпись исчезает в PDF. Если я попробую применить его к слою 0 или слою 1, ничего не произойдет. Я предполагаю, что я касаюсь правильного слоя (2).
Любые идеи? Цель состоит в том, чтобы просто получить фон в ящике подписи, если бы он был прозрачным.
См. Комментарий ниже. Я попробовал это, а также установил против слоя 2 и слоя 0. Оба они приводят к красному ящику, но текст подписи отсутствует.
PdfTemplate sigAppLayer2 = appearance.GetLayer(2);
Rectangle rect = sigAppLayer2.BoundingBox;
PdfTemplate sigAppLayer0 = appearance.GetLayer(0);
sigAppLayer0.SetRGBColorFill(255, 0, 0);
sigAppLayer0.Rectangle(rect.Left, rect.Bottom, rect.Width, rect.Height);
sigAppLayer0.Fill();
* но текст подписи отсутствует * - Вы знаете, что после выполнения 'appearance.GetLayer (2)' Вы должны добавить писать себя, не так ли? Либо вы оставите рисование слоя в iText, либо сделаете все сами. – mkl
Я не знал, что вы не можете манипулировать слоем2, не разрушая его. См. Комментарий ниже. Любые идеи, если есть способ сохранить текст при настройке фона прямоугольника подписи? Я попытался манипулировать параметром прямоугольника, прежде чем он будет установлен в метод SetVisibleSignature, но, похоже, он не форматирует процесс создания блока подписи. – gilm0079
* Я не знал, что вы не можете манипулировать слоем2, не уничтожая его. * - В большей степени iText (во время preClose) проверяет, есть ли уже какой-то материал уровня 2. Если это так, это берет (например, ваш прямоугольник) как есть. Если этого не происходит, создается внешний вид слоя 2 по умолчанию. – mkl