Publicado por: 0

Resulta que estaba generando un PDF con pdfSharp y estaba poniendo los títulos con un marco alrededor.

Usaba los métodos de “DrawRectangle” y “DragString” pasándoles un “XRect”, pero las opciones de formato “XStringFormat” no tienen ninguna opción para meterle algo de padding y que el texto no quedara tan pegado al rectángulo…

Así que nada… se me ha ocurrido esta forma de hacerlo muy sencilla que se basa simplemente en tener un rectángulo interior donde meter el texto. Por tanto pintamos el marco con el XRect original, pero luego el texto con otro XRect.

Nada como el código para que se vea lo que quiero decir:

public void PrintTitle(int pageIndex, string text, int x, int y)
{
	var rect = new XRect(x, y, 550, 20);
	var innerRect = new XRect(x+10, y+2, 350, 15);
	Pages[pageIndex].graphic.DrawRectangle(XBrushes.LightSlateGray, rect);
	Pages[pageIndex].graphic.DrawString(text, _fontTitle13, XBrushes.Black, innerRect, XStringFormat.TopLeft);
}

Y aquí tenéis el resultado:

Los colores y demás ya es cosa vuestra. 🙂

Happy coding!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.