Hallo,
ich habe ein Problem mit dem Ausdruck eines IFrames in einem Popup-Fenster. Um nur den Inhalt des IFrames auszudrucken, habe ich einen Druckbutton in die Seite eingefügt. Das Drucken funktioniert auch, allerdings ändert er das Seitenformat in den Druckeinstellungen immer auf Letter anstatt auf DIN A4 zu drucken. Im Internet Explorer macht er es natürlich richtig, nur leider nicht im Mozilla/Firefox. Standardmäßig ist aber auch dort DIN A4 eingestellt. Und für dieses Projekt habe ich nun gerade unseren Systemadmin davon überzeugt, für alle Firefox zu installieren, da ich mit dem Internet Explorer die Suchfunktion noch nicht hinbekommen habe.
Ich habe versucht, mit CSS das Seitenformat festzulegen, leider hatte das keine Wirkung. Vielleicht habe ich es auch an der falschen Stelle eingefügt. Ich hoffe, mir kann da jemand weiterhelfen. Denn wenn ich unseren Mitarbeitern sagen muss, das sie für jeden Ausdruck erst die Seiteneinstellungen anpassen müssen, werden sie mich vermutlich lynchen.
Hier die beiden Dateien, die erste (ap.html) ruft das IFrame auf...
... und die zweite (ap.php) stellt den Inhalt dar.
Falls ihr euch fragt, warum ich dort überhaupt ein IFrame einsetze: ich muss, da ich die ClientSuite Mapbender für eine Kartenanwendung einsetze und dort eine Abfrage mache. Leider kann ich für das Abfrageergebnis nur eine HTML-Seite angeben, ich brauche aber PHP für meine Datenbankabfrage. So bekam ich dann den Tipp mit dem IFrame.
Ich bin für jeden Hinweis dankbar!
Grüße,
PetraB
ich habe ein Problem mit dem Ausdruck eines IFrames in einem Popup-Fenster. Um nur den Inhalt des IFrames auszudrucken, habe ich einen Druckbutton in die Seite eingefügt. Das Drucken funktioniert auch, allerdings ändert er das Seitenformat in den Druckeinstellungen immer auf Letter anstatt auf DIN A4 zu drucken. Im Internet Explorer macht er es natürlich richtig, nur leider nicht im Mozilla/Firefox. Standardmäßig ist aber auch dort DIN A4 eingestellt. Und für dieses Projekt habe ich nun gerade unseren Systemadmin davon überzeugt, für alle Firefox zu installieren, da ich mit dem Internet Explorer die Suchfunktion noch nicht hinbekommen habe.
Ich habe versucht, mit CSS das Seitenformat festzulegen, leider hatte das keine Wirkung. Vielleicht habe ich es auch an der falschen Stelle eingefügt. Ich hoffe, mir kann da jemand weiterhelfen. Denn wenn ich unseren Mitarbeitern sagen muss, das sie für jeden Ausdruck erst die Seiteneinstellungen anpassen müssen, werden sie mich vermutlich lynchen.
Hier die beiden Dateien, die erste (ap.html) ruft das IFrame auf...
Code:
<html>
<head>
<title>AP-Übersicht</title>
<!-- Button zum Ausdrucken des Frameinhalts -->
<input type="button" value="Drucken" onClick="javascript:InhaltDrucken();" style="font-family: Tahoma; font-size: 10pt; font-weight: bold">
<!-- Javascript-Funktion zum Ausdrucken des IFrame-Inhalts -->
<script type="text/javascript">
<!--
function InhaltDrucken()
{
parent.frmInner1.focus();
parent.frmInner1.print();
}
/* aufrufen des IFrames mit Javascript: die Javascript-Funktion
"opener.makeClickPos2RealWorldPos()" ist eine Mapbender-Funktion und
transformiert die mit [X] und [Y] übergebenen Bildkoordinaten in das
eingestellte Weltkoordinatensystem. */
document.write("<iframe name=\"frmInner1\" frameborder=0 width=\"100%\" height=\"96%\" scrolling=\"yes\" src=\"http://vermessung-barnstorf.map3/apueb/ap.php?pos="+opener.makeClickPos2RealWorldPos('mapframe1',[X],[Y])+"\"></iframe>");
-->
</script>
<!--<iframe src="http://vermessung-barnstorf.map3/apueb/ap.php?x=x" width="100%" height="900" scrolling="no"></iframe>-->
</head>
<body>
</body>
</html>
Code:
<?php
// Abfrage der übergebenen Koordinaten
$pos = $_REQUEST["pos"];
// Datenbankaufruf in extra Datei
include('../../data/mapbender2/http/javascripts/db_connection.php');
// übergebene Koordinaten stehen in einem Feld durch Komma getrennt, muss daher getrennt werden
$pos_feld = explode(',',$pos);
$x = $pos_feld[0];
$y = $pos_feld[1];
/* Datenbankabfrage: gebe mir die angegebenen Felder einer Tabelle aus,
wo der Abstand zwischen der übergebenen Klick-Position und der Geometrie
in der Datenbank kleiner ist als 100 */
$sql = "select nbz_pkt,x,y,z,ls,pkt from ap where distance(the_geom,GeometryFromText('POINT(".$x." ".$y.")',31463))< 50";
$result = pg_query($sql);
$numresult = pg_num_rows($result);
// Schleife für die Ausgabe aller betroffenen Tabelleneinträge
for ($i = 0; $i < $numresult; $i++)
{
// hier werden die Daten in einer Variablen gespeichert
$data = pg_fetch_array($result);
$nbz = substr($data[0],0,8);
?>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; page-break-after:avoid;" bordercolor="#111111" id="AutoNumber1">
<tr align="center">
<!-- einbinden eines Bildes in der Ausgabe -->
<td colspan="5"><img src="http://vermessung-barnstorf.map3/data_apueb/apfr/<? echo $nbz; ?>/<? echo $data[0]; ?>.jpg" alt="AP-Beschreibung nicht vorhanden" width="650" height="890"/></td>
</tr>
<tr><td colspan="5"><hr></td></tr>
<tr style="font-weight:bold;font-size:12pt">
<td>NBZ + Punktnummer</td>
<td>Rechtswert</td>
<td>Hochwert</td>
<td>Höhe</td>
<td>LS</td>
</tr>
<tr style="font-size:12pt">
<!-- Ausgabe der Daten aus der Datenbank -->
<td><?echo $data[0]; ?></td>
<td><?echo $data[1]; ?></td>
<td><?echo $data[2]; ?></td>
<td><?echo $data[3]; ?></td>
<td><?echo $data[4]; ?></td>
</tr>
</table>
<?
}
// Schließen der Datenbankverbindung
pg_close($dbconnection);
?>
Falls ihr euch fragt, warum ich dort überhaupt ein IFrame einsetze: ich muss, da ich die ClientSuite Mapbender für eine Kartenanwendung einsetze und dort eine Abfrage mache. Leider kann ich für das Abfrageergebnis nur eine HTML-Seite angeben, ich brauche aber PHP für meine Datenbankabfrage. So bekam ich dann den Tipp mit dem IFrame.
Ich bin für jeden Hinweis dankbar!
Grüße,
PetraB