Цвет с прозрачностью в iText 7.1.4 - PullRequest
0 голосов
/ 14 января 2019

Могу ли я использовать цвет с прозрачностью в моей программе, и я хочу использовать этот цвет в моем файле PDF. Я создаю свой PDF-файл с помощью iText 7.1.4, и я не знаю, как установить прозрачность для типа DeviceRgb:

public static DeviceRgb ToDeviceRgb(this System.Windows.Media.Color color) =>
    new DeviceRgb(color.R, color.G, color.B);

Можно ли использовать цвет с прозрачностью в iText7?

ОБНОВЛЕНИЕ:

Я пытался сделать, как сказал Владимир Осипчук , но я не вижу никакого результата: enter image description here

Шаблон карточки товара, которую я могу редактировать в своей программе (поля, отступы, цвета, шрифты и т. Д.). При настройке шаблона некоторые цвета могут иметь альфа-канал (прозрачный), и я хочу видеть этот прозрачный фактор в моем документе PDF. Итак, как мне посоветовал Владимир Асипчук , я передаю уровень непрозрачности второму параметру в методе SetBackgroundColor:

public override Table CreateTemplate(Product product)
{
    if(product == null) throw new ArgumentNullException(nameof(product));

    // Create a table of the product card
    var productTable = new Table(new UnitValue[] { UnitValue.CreatePercentValue(40), UnitValue.CreatePercentValue(60) })
        .SetWidth(UnitValue.CreatePercentValue(100))
        .SetBackgroundColor(Settings.BackgroundColor.ToDeviceRgb(), 0.3f) // Here!!
        .SetMarginBottom(10)
        .SetKeepTogether(true);

    // Here we create a cell of the header, 
    // image, description, notes, prices of out product card

    return productTable;
}

И как вы можете видеть на скриншоте, у меня нет прозрачного цвета, равного 0.3f

1 Ответ

0 голосов
/ 15 января 2019

iText поддерживает прозрачные цвета для фона. Пожалуйста, посмотрите на образцы там: https://github.com/itext/itext7/tree/develop/layout/src/test/resources/com/itextpdf/layout/OpacityTest

Например, с помощью следующего фрагмента я могу получить удовлетворительные результаты:

    Table table = new Table(1);
    table.addCell(new Cell().setBackgroundColor(new DeviceRgb(200, 100, 50), 1f).add(new Paragraph("Cell with Opacoty 1")));
    table.addCell(new Cell().setBackgroundColor(new DeviceRgb(200, 100, 50), 0.5f).add(new Paragraph("Cell with Opacoty 0.5")));
    table.addCell(new Cell().setBackgroundColor(new DeviceRgb(200, 100, 50), 0.1f).add(new Paragraph("Cell with Opacoty 0.1")));
    doc.add(table);

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...