Izvukao sam deo koda iz jednog progama koji sam radio i malo ga prepravio...
Nadam se da će ti pomoći bar za iscrtavanje teksta na slici, dok ćeš za štampanje toga morati da se snađeš...
Ovaj primer iscrtava navedeni tekst na sliku u pictureBox-u, i ima opciju podešavanja providnosti, t.j neprovidnosti teksta.
Code:
private void drawText()
{
// boja teksta
myWatermarkColor = Color.Red;
float fontSize = 10;
string CurrentFile = "slika.jpg";
string tekstNaSlici = "ovo je slika!";
Font f;
try
{
f = new Font(FontFamily.GenericMonospace, fontSize);
}
catch (Exception e)
{
// obrada greške
}
myFont = f;
try
{
picContainer.Image = Image.FromFile(CurrentFile);
}
catch (Exception gre)
{
// opet obrada greške, ako fajl ne postoji i sl.
}
int opac = 0;
int procenat = 50; // procenat neprovidnosti (opacity) fonta
opac = (int)((double)((double)procenat / (double)100) * 255); // ovo može verovatno elegantnije da se reši :)
Graphics g;
//Učitavanje slike
try
{
g = Graphics.FromImage(picContainer.Image);
}
catch // nekad ne uspeva da pročita sliku pa mora da se pristupi sledećem:
{
Image slika = picContainer.Image;
try
{
Bitmap bmp = new Bitmap(slika);
Bitmap slika2 = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format24bppRgb);
g = Graphics.FromImage(slika2);
g.DrawImage(bmp, 0, 0, slika2.Width, slika2.Height);
picContainer.Image = slika2;
}
catch
{
return;
}
}
// ovde podešavaš boju i neprovidnost teksta koji ispisuješ
Brush myBrush = new SolidBrush(Color.FromArgb(opac, myWatermarkColor));
SizeF sz = g.MeasureString(tekstNaSlici, myFont);
if (tesktNaSlici != "")
{
int X;
int Y;
X = 0;
Y = 0;
while ((int)Y <= picContainer.Image.Height)
{
while ((int)X <= picContainer.Image.Width)
{
//ovde ispisuješ tekst navedenim fontom i "četkicom"
g.DrawString(tekstNaSlici, myFont, myBrush, new Point(X, Y));
X += (int)sz.Width;
}
X = 0;
Y += (int)sz.Height;
}
}
g.Dispose();
}