Oh man hatte ich gestern ein Brett vor dem Kopf.
Und zwar bastel ich an einen Programm, aus dem auch Bilder ausgedruckt werden können. Und je nach Größe des Bildes soll es an die Größe des Blattes angepasst werden. Sprich kleine Bilder sollen nicht gestreckt werden, große Bilder aber gestaucht. Problem war hier, ich hatte zwar die mm des Blattes, jedoch vom Bild nur die Pixel.
Und ich hab mir verdammt schwer beim Umrechnen getan. Hier nun die Lösung:

((float)Bild.Width * 2.54 / 100)

Bild.Width ist die Breite des Bildes in Pixel. Rauskommt eine hier die Breite in cm (!!). Um damit lässt sich arbeiten. Irgendwie hing ich gestern den ganzen Tag dadran und auch ein Kollege hat sich ein wenig dran versucht aber irgendwie stießen wir immer wieder auf Probleme.

Um nun zu wissen, ob ich das Blatt stauchen muss, prüfe ich das einfach mit der Breite des Blattes ab:

if (((float)Bild.Width * 2.54 / 100) >= ((float)(e.PageBounds.Width * 2.54 / 100)) || ((float)Bild.Height * 2.54 / 100) >= ((float)(e.PageBounds.Height * 2.54 / 100))) {
  // Tu dies 
}
else {
  // Tu jenes
}

Eigentlich recht simpel, e.PageBounds.XXX sind halt die Breite der Blätter in Pixel.

So und grad eben merk ich, dass ich ja die Bild Höhe / Breite in Pixel habe und auch die des Blattes, warum vergleich ich nicht einfach die???
Oh man oh man!!