marco1234
Goto Top

Bild aus dem Web in Originalgrösse auf A4 drucken

Hallo! face-smile

Ich habe ein CD Cover erstellt, dessen Daten mit PHP automatisch generiert werden. Funktioniert alles einwandfrei.

Mein Problem ist jetzt einfach, dass das Bild beim Ausdrucken automatisch verkleinert wird. Wenn ich das generierte cover.jpg lokal mit einem Bildbearbeitungsprogramm öffne und drucke, habe ich genau meine benötigten Masse. Lasse ich das Bild im I-Net anzeigen (Grösse stimmt, egal welcher Browser) und wähle dann drucken, wird das Bild verkleinert und ist für mich somit unbrauchbar.

Was kann ich einstellen / programmieren, damit das Bild auch aus dem Web in Originalgrösse auf das A4 Blatt kommt?

Habe das das Bild auch schon von 72 DPI auf 500 DPI aufgestockt. Das Problem besteht aber trotzdem noch.

Danke und Gruss
Marco
Kommentar vom Moderator masterG am 03.11.2010 um 19:37:06 Uhr
verschoben nach CSS

Content-ID: 154238

Url: https://administrator.de/contentid/154238

Ausgedruckt am: 19.11.2024 um 17:11 Uhr

brammer
brammer 03.11.2010 um 09:14:57 Uhr
Goto Top
Hallo,

wenn du das Bild mit einem Programmwie Irfan View öffnest, welche Bildgröße wird denn dort angezeigt ?

brammer
nxclass
nxclass 03.11.2010 um 10:18:40 Uhr
Goto Top
Du solltest ein extra CSS File zum Drucken anlegen - und dort ein Bild mit höherer Pixelzahl benutzen. ( CSS angaben in pt oder cm)
Oder gleich das große Bild nehmen und per HTML oder CSS für die Anzeige runter skalieren.

prüfe mal: ob eine höhere DPI Zahl erzeugt wird, wenn Du das Bild in einem anderen Format speicherst (PNG oder TIFF)

EDIT: http://de.selfhtml.org/css/formate/einbinden.htm#media
Florian.Sauber
Florian.Sauber 03.11.2010 um 15:03:27 Uhr
Goto Top
Hallo!

Zitat von @marco1234:
Ich habe ein CD Cover erstellt, dessen Daten mit PHP automatisch generiert werden. Funktioniert alles einwandfrei. Mein Problem ist jetzt einfach, dass das Bild beim Ausdrucken automatisch verkleinert wird.

Druckst Du dabei das Bild aus, indem Du es vorher seperat anzeigen lässt, oder druckst Du Seite, in der das Bild eingebettet ist aus. Ausschnitte aus dem Sourcecode wären da hilfreich.

Von was für Auflösungen bzw. absoluter Pixelanzahl /pro Seitenverhältnis sprechen wir?

Ein seperates Sylesheet fürs Drucklayout gehört, wie nxclass schon schreibt, nicht nur zum guten Ton, sondern erlaubt, soweit dies mgl ist, Kontrolle über die Darstellung.

LG Florian
marco1234
marco1234 04.11.2010 um 08:18:41 Uhr
Goto Top
Hallo zusammen

Danke für eure schnellen Antworten.

Wenn ich das Bild mit einem Bildbearbeitungsprogramm (MS Picture Manager, IrfanViewer, Photoshop etc.) ist die Grösse 500 x 800 mit 500 DPI. So wie ich es eingerichtet habe.

Auf meiner Seite bzw. auf einer leeren Seite, wo nur das Bild ausgegeben wird, wird meine Cover Vorlage auch mit 500 x 800 dargestellt. Alles super!

Nur wenn ich jetzt im Browser auf Drucken... gehe bzw. per JavaScript drucke, wird meine Vorlage auf dem A4-Blatt verkleinert. Es werden ja auch automatisch Informationen, wie URL, Datum etc., aufs Blatt mitgedruckt. Das sollte aber nicht das Problem sein. Platz hätte es genug.

Wenn ich das Cover lokal ausdrucke ist es genau 13x13cm. Nach dem Ausdruck im I-Net nur noch 8.5x8.5 :-S

Vielleicht noch kurz zum Generieren des Covers. Ich habe eine Vorlage mit Photoshop erstellt. Die ganze .jpg-Datei ist 500 x 800 gross. In PHP nehme ich meine Werte und positioniere diese an den entsprechenden Orten auf dem Cover:

Beispiel:
imagettftext($image,15, 0, 73, 125, $textcolor, $ttf, $producer); 

Ich muss es irgendwie schaffen, dass der Browser das Cover beim Drucken nicht verkleinert.

Ich habe übrigens ein print.css jedoch nichts für Bilder definiert.

Du solltest ein extra CSS File zum Drucken anlegen - und dort ein Bild mit höherer Pixelzahl benutzen.

also im print.css einfach nochmals 500x800 für das Bild angeben?

img#cd_cover {
  		width: 500px;
		height: 800px;
		}

thx and gr
marco
nxclass
nxclass 04.11.2010 um 10:23:25 Uhr
Goto Top
also im print.css einfach nochmals 500x800 für das Bild angeben?
Für den Drucker muss natürlich eine Maßeinheit genutzt werden welche auch eindeutig ist. zB. pt oder cm - mit Pixeln kann nur der Bildschirm gut umgehen.

@media print {
    img#cd_cover { width: 13cm; height: 13cm; }
}
@media screen {
    img#cd_cover { width: 500px; height: 800px; }
}

die Grösse 500 x 800 mit 500 DPI
Wenn ich das Cover lokal ausdrucke ist es genau 13x13cm. Nach dem Ausdruck im I-Net nur noch 8.5x8.5
.. da stimmt doch schon das Seitenverhältnis nicht !?

x: 500px / 500dpi = 1 inch = 2.54 cm
y: 800px / 500dpi = 1,6 inch = 4.06 cm
... also da müsste eigentlich was anderes raus kommen

EDIT:
In PHP nehme ich meine Werte und positioniere diese an den entsprechenden Orten auf dem Cover
ist das Bild dann immer noch 500dpi ? - wahrscheinlich nur 300dpi - dann könnte die Rechnung stimmen und die ca. 8cm rauskommen.
marco1234
marco1234 04.11.2010 um 11:22:18 Uhr
Goto Top
hi!

Danke für die Tipps!

Ja, hat funktioniert jedoch mit:

img#cd_cover { 
	width: 30cm;
	height: 48cm; }
marco1234
marco1234 05.11.2010 um 08:31:20 Uhr
Goto Top
weiss jemand von euch villeicht auch, wie man per JavaScript angeben kann, dass nur die Seite 2 gedruckt werden soll??
nxclass
nxclass 05.11.2010 um 10:19:48 Uhr
Goto Top
dass nur die Seite 2 gedruckt werden soll??
das wird wohl auch nur durch CSS gehen, indem Du in der print Version den Inhalt der ersten Seite unsichtbar machst.
div.noprint {
    display: none;
}
<!-- -->
<div class="noprint">Seite 1</div>  
<div>Seite 2</div>
marco1234
marco1234 08.11.2010 um 10:12:08 Uhr
Goto Top
Geht leider nicht. Das Problem ist, dass das Cover zu gross ist und die Infozeilen verschiebt. Auf der 1. und 3. Seite steht nur ein Satz und auf der 2. ist mein Cover xD
nxclass
nxclass 08.11.2010 um 11:55:32 Uhr
Goto Top
Dann hilft evtl. nur eine absolute Positionierung der Elemente.
div.image {
  position: absolute;
  z-index: 1;
  top: 1cm;
  left: 1cm;
}
... so dass die DIV Elemente sich überlagern können.

http://de.selfhtml.org/css/eigenschaften/positionierung.htm
marco1234
marco1234 12.11.2010 um 10:09:34 Uhr
Goto Top
Bringt mir leider nichts.... :-S

Hab's jetzt so gelöst:
Das Cover wird in einem separatem Fenster angezeigt. Im Fenster onload wird der Druck gestartet. Auf meiner Hauptseite habe ich dann einfach diese Seite beim Drucklink hinterlegt.

Aufruf:
<a href="print_cover.php">  

Druck:
<style>
img#cover { 
	width: 30cm;
	height: 48cm; }	
</style>
</head>
<body onload="print();">  
  <div id="print">  
	<img src="cover.jpg"  id="cover"/>  
  </div>
</body>	

Danke für eure Hilfe!
Marco