Когда мы говорим о низкоуровневых инструкциях потока контента, сам цвет и уровни прозрачности указываются отдельно в синтаксисе PDF. Класс TransparentColor
, о котором вы говорите, был разработан, чтобы упростить жизнь пользователям, которые менее знакомы с нюансами синтаксиса PDF, но это класс более высокого уровня, который вы можете использовать, например, в модуле layout
, и в вашем случае вы работать с документом на довольно низком уровне.
Короче говоря, чтобы установить прозрачность цвета, вам понадобится всего одна дополнительная строка рядом с настройкой самого цвета:
canvas.SetExtGState(new PdfExtGState().SetFillOpacity(0.5f));
Таким образом, код становится:
var page = pdf.GetPage(1);
PdfCanvas canvas = new PdfCanvas(page);
canvas.SaveState();
canvas.SetFillColor(iText.Kernel.Colors.ColorConstants.YELLOW);
canvas.SetExtGState(new PdfExtGState().SetFillOpacity(0.5f));
var pageHeight = page.GetPageSize().GetHeight();
var pageWidth = page.GetPageSize().GetWidth();
// left side
canvas.Rectangle(0, 0, 15, pageHeight);
// bottom
canvas.Rectangle(0, 0, pageWidth, 15);
canvas.Fill();
canvas.RestoreState();