Все примеры показывают, как добавить текстовый водяной знак с помощью PDFsharp. но что делать, если мне нужно добавить водяной знак?Как добавить водяной знак изображения в PDFsharp?
Я сделал это:
if (!String.IsNullOrEmpty(_logo) && System.IO.File.Exists(_logo))
{
XImage logo = XImage.FromFile(_logo);
XRect rectLogo = new XRect(0, 0, page.Width, page.Height);
rectLogo.Scale(0.5, 0.5);
gfx.DrawImage(logo, rectLogo);
}
Изображение появляется, но не в качестве водяного знака.
EDIT:
я наконец поставил водяной знак вручную, однако, есть еще одна вещь, чтобы решить. Как изменить непрозрачность XImage? Я могу сделать это, используя процессор изображений, но это не идея. Это программное обеспечение, которое будет использовать обычного пользователя, и я не могу сказать ему, чтобы он изменил изображение, прежде чем назначать его как водяной знак. Любое решение?
Это код на данный момент:
if (!String.IsNullOrEmpty(_logo) && System.IO.File.Exists(_logo))
{
XImage logo = XImage.FromFile(_logo);
double width = logo.PointWidth;
double height = logo.PointHeight;
double ratio = width/height;
if (width > page.Width.Point * 0.5)
{
width = page.Width.Point * 0.5;
height = width/ratio;
}
else if (height > page.Height.Point * 0.5)
{
height = page.Height.Point * 0.5;
width = height * ratio;
}
double offsetX = (page.Width.Point - width)/2;
double offsetY = (page.Height.Point - height)/2;
XRect rectLogo = new XRect(offsetX, offsetY, width, height);
gfx.DrawImage(logo, rectLogo);
}
Вы не говорите нам, что вы ожидаете, вы не говорите нам, что вам нужно. Рисование изображения, как и вы, похоже на правильный подход, но для получения оптимального результата может потребоваться некоторая настройка. –
Что вы комментируете, не обязательно указывать, знаете ли вы, что такое водяной знак. Мой appoach просто помещает изображение перед текстом. Конечно, мне нужно, чтобы он был помещен за текст и с меньшей непрозрачностью. Если вы знаете Microsoft Word, вы можете точно знать, что мне нужно, если вы видите его вариант водяного знака. – jstuardo