Посмотрите пример
BackgroundTransparent. Это вариант примера
BackgroundImage
В своем коде вы добавляете
Image
к экземпляру
Document
. В этом нет ничего плохого, но если вы хотите сделать изображение прозрачным, нужно создать мягкую маску. Это нетрудно, но есть и более простой способ сделать фон прозрачным: добавьте изображение прямо к содержимому, а затем определите прозрачность с помощью
PdfExtGState
:
PdfCanvas canvas = new PdfCanvas(pdfDoc.addNewPage());
ImageData image = ImageDataFactory.create(imgSrc);
canvas.saveState();
PdfExtGState state = new PdfExtGState();
state.setFillOpacity(0.6f);
canvas.setExtGState(state);
canvas.addImage(image, 0, 0, pageSize.getWidth(), false);
Вы можете сравнить результаты примеров выше и увидеть разницу.
Мой пример написан на Java, но его легко изменить для C#.