---
title: "Lernen am Beispiel: Printversion"
url: "https://www.typo3.net/d/27214-lernen-am-beispiel-printversion"
source: "typo3.net"
tags: ["Allgemein","Tipp"]
created: "2005-07-13"
last_reply: "2007-01-08"
replies: 64
solved: false
page: 1
pages: 1
lang: "de"
---

# Lernen am Beispiel: Printversion

Allgemein · 64 Antworten · gestartet 2005-07-13

## Eröffnungsbeitrag

**Proximo** · 2005-07-13 · [Beitrag #1](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/1)

Als Erstes muß ich erwähnen das große Teile dieser Printversion irgendwo in Schnippseln im Buch "Typo3 Enterprise Content Management" der Open Source Press zu finden sind.

Der Grund für diese "Präsentation" ist die Tatsache das ich täglich Leute im Forum sehen die Neulingen erklären wollen das sie 2 Seiten Code in ihr eh meist schon ziemlich großes und unübersichtliches Project (das ist Tatsache wenn man eine Typoseite zum 1. oder 2. mal zusammenbastelt ;) ) reinbasteln müssen, nur um eine Printversion zu gestalten.

Ich will beweisen das dies nicht der Fall ist:

Als 1. definieren wir also die Druckversion:

```typoscript
temp.PRINT= COA
temp.PRINT {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
   
# Diese Methode verwendet Typo wenn wir SimulateStaticHTML verwenden... sie fügt uns
# den Type in die URL ein, und zwar so das SimulateStaticHTML damit zurechkommt
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html
}

# Diese Methode verwendet Typo wenn wir kein SimulateStaticHTML verwenden
[globalString = ENV:REQUEST_URI = /index.php*]
temp.PRINT.10 >
temp.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]
```

Nun haben wir einen Link geschaffen den wir irgendwo auf der Seite unserer Wahl einbauen können, zb im Marker "DRUCKEN" (###DRUCKEN###) also nicht vergessen dies auchnoch an der richtigen stelle mit

marks.DRUCKEN < temp.PRINT

einzubauen!

Als nächstes definieren wir noch "was ist eine Druckversion?".´

Nun das erklären wir Typo folgendermaßen:

```typoscript
print = PAGE
print {
   typeNum = 98
   bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">

   10 < styles.content.getLeft
   20 < styles.content.get
}
```

Achtung! Dieser ganze Absatz darf nicht in irgendwelchen Klammern stehen (es ist ja ein Seitentype für sich alleine) UND er MUß im Haupttemplate stehen! (falls ihr mehrere habt)

Toll ist auch das dies nicht nur für 1 Seite sondern für alle funktioniert ;) (das stimmt natürlich nur solange wie unser Inhalt ausschließlich in der Hauptspalte und der Linken zu finden ist ;) )

So und nun... nein Spaß^^ das wars schon... einfach oder? (jaja das sagen sie alle ;)

MFG Proximo

## Antworten

### [#2](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/2) · Amelia · 2005-07-13

He Supi Tut, werde ich mir merken udn demnächst gleich ausprobieren!
DANKE!!!  :)

> ..in ihr eh meist schon ziemlich großes und unübersichtliches Project...

recht hast Du! 8-)

### [#3](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/3) · Proximo · 2005-07-13

Danke ;) aber ich glaub ich muß eher mal n Tutorial über "Sauberes TS-Templatemanagement", "TS-Templatedesign und Aufbau größerer TS-Projecte" oder "Modulare Programmierung von TS-Componenten" schreiben ;) (soll ich?)

MFG Proximo

### [#4](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/4) · Amelia · 2005-07-13

Wenn Du langeweile hast, tu das!? Vielleicht kannst Du ja auch nen bissl Literatur empfehlen zu den Themen !?  :p

### [#5](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/5) · Proximo · 2005-07-13

Das schlimme ist ja... es gibt kaum gute Literatur außer die TS-REF und das Buch von "Open Source Press"... das heißt "Typo3 Enterprise Content Management" von "Werner Altmann, René Fritz und Daniel Hinderink" (ISBN 3-937514-01-5) die 2 Sachen allerdings gehört zu jedem Typoprogrammierer dazu wie das Amen in der Kirche...

Und da gute Tutorials (vorallem aktuelle) ziemlich Rar sind werde ich warscheinlich nicht drumrum kommen selber welche zu schreiben ;)

MFG Proximo

### [#6](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/6) · Amelia · 2005-07-13

Hallo!
Habe mal gerade versucht, Deine Printversion nachzubauen. Zwei Fragen / Probleme habe ich aber noch:

1. Wie bekomme ich den Rahmen um den Link weg ?
Habs schonmal mit Stylesheet versucht, aber er bleibt hatrnäckig!? :/

2. Beim Aufruf bekomme ich folgende Meldung:

```typoscript
Error!The page is not configured! [type= 98][]
```

Ich glaube, mir ist nicht wirklich klar, wo welcher Code hin muss.
Habe es foldender maßen umgesetzt:

Als erstes habe ich eine neue Seite Print angelegt.

Im HTML einen Marker gesetzt:

```typoscript
###PRINT###
```

ins Template-Setup der Print-Seite folgendes geschrieben:

```typoscript
print = PAGE
print {
   typeNum = 98
   bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
   10 < styles.content.getLeft
   20 < styles.content.get
}
```

und ins Setup des Maintemplates dieses:

```typoscript
# Print-Funktion #
marks.PRINT = COA
marks.PRINT {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print"><img src="fileadmin/images/nav_print.gif" alt="" /></a>
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html
}

marks.PRINT.10 >
marks.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
```

Was habe ich da falsch gemacht / falsch verstanden ?

### [#7](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/7) · _o3_ · 2005-07-13

```typoscript
page{
...
#den marker setzen
DRUCKEN = TEXT
DRUCKEN{
  field = uid
  wrap = <a href="index.php?id=|&type=98" target="_new">drucken</a>
}
...
}
```

unterhalb der geschweiften klammern dann folgendes..

```typoscript
#druckansicht
druckversion = PAGE
druckversion{
  typeNum = 98
  stylesheet = fileadmin/deine_druck.css
  10 = TEMPLATE
  10{
    template = FILE
    template.file = fileadmin/deine_druck.html
  
    #marker ansprechen
    marks{
      dein_marker = CONTENT
      dein_marker{
        table = tt_content
        select {
          where = colPos = 0
          orderBy = sorting
        }
      }
    }
  }
}
```

that´s it...

### [#8](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/8) · Amelia · 2005-07-13

@ _03_:
also wenn ich das nach deinem Beipiel umsetzte, bekomme ich genau die gleichen Fehler! :/
Was mache ich nur falsch ???

Habe die Print-Funktion jetzt integriert ins Setup meines TS-Main-Templates:

```typoscript
  # Print-Funktion #
  marks.PRINT = TEXT
  marks.PRINT {
    field = uid
    wrap = <a href="index.php?id=|&amp;type=98" target="_new"><img src="fileadmin/images/nav_print.gif"</a>
   }
   #druckansicht
   druckversion = PAGE
   druckversion{
     typeNum = 98
     stylesheet = fileadmin/style.css
     10 = TEMPLATE
     10 {
       template = FILE
       #HTML für Druckausgabe
       template.file = fileadmin/index.html
       #marker ansprechen
       marks{
         PRINT = CONTENT
         PRINT {
           table = tt_content
           select {
             where = colPos = 0
             orderBy = sorting
           }#select
        }#print
      }#marks
   }#druckversion
```

### [#9](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/9) · Proximo · 2005-07-13

*Kopfschüttel* fangen wir nochmal an:

Ich setze folgende Minimalzustände vorraus:
- Installiertes Typo
- Include static: styles.content (default) (im Maintemplate)
- Inhalt in irgendeiner Spalte (auf der jeweiligen Seite)

Als aller erstes füge ich nun ins Haupttemplate, UNTER ALLES, vorallem AUßERHALB JEDER KLAMMER folgenden TS im SETUP ein:

```typoscript
temp.PRINT = COA
temp.PRINT {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
   
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html
}

[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT.10 >
temp.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]
```

Und jetzt nochmal AUßERHALB JEDER KLAMMER genau drunter:

```typoscript
print = PAGE
print {
   typeNum = 98
   bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">

   10 < styles.content.getLeft
   20 < styles.content.get
   30 < styles.content.getRight
   40 < styles.content.getBorder
}
```

Nachdem man dies einfach alles eingefügt hat OHNE ES ZU ÄNDERN darf man jetzt anfangen zu denken, man muß den inhalt von "temp.PRINT" nun in einen Marker oder Subpart befördern... das macht man am besten indem man schaut wo man seine anderen marker hat die zb so ausschauen können:

```typoscript
marks.bild = IMAGE
marks.bild.file = ...
```

Genau unter so einen Eintrag schreiben wir dann:

```typoscript
marks.PRINT < temp.PRINT
```

Und im HTML-Template schreiben wir dann noch irgendwo (am besten auch ganz nah an irgendeinem vorhanden Marker damit wir auch ja nix falschmachen)

```typoscript
###PRINT###
```

rein!

Ich hoffe das war jetzt für alle verständlich!

Schlusswort:
Das was ihr 2 da anstellt hat 1. Jede Menge Klammern, ist 2. Kompliziert, 3. (in Folge) total unübersichtlich und 4. Ziemlich sinnlos^^

Ja genau ich habe extra drauf verzichtert anzufangen alles zu verschachteln und zusätzlich noch Templates einzubinden weil die meisten Typoanfänger mehr Ahnung von CSS haben wie von Typo und sich deshalb so viel einfacher tun!

Die größte Sinnlosigkeit die ich dabei gesehen habe ist allerdings:

```typoscript
marks{
      dein_marker = CONTENT
      dein_marker{
        table = tt_content
        select {
          where = colPos = 0
          orderBy = sorting
        }
      }
    }
```

Da 1. "styles.content (default)" diese Aufgabe für uns übernimmt, und mann 2. keinen Marker braucht wenn man nur 1 Element ausgeben will *g*

MFG Proximo

Edit: Nachdem ich gesehen hab wir der Aufbau und die Strukturierung mancher Haupttemplates und TS in diesem Forum aussieht habe ich mich entschlossen das nächste Tutorial über "Strukturierung von TS und TS-Templates" also genauergesagt "Effizients und Übersichtlichkeit" zu schreiben (coming soon)

### [#10](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/10) · Amelia · 2005-07-14

Einen wichtigen Punkt hast Du vergessen zu erwähnen oder ich übersehen:

man braucht eine Extension, welche sich plugin.alt.print nennt und vorinstalliert ist. Diese muss einfach im Template unter "include static" integriert werden und dann klappts auch. *juhu*  :p

### [#11](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/11) · _o3_ · 2005-07-14

@proximo
nun meine version funzt.

da es natürlich cool ist wenn du mal nen "wie strukturiere ich TS" - tutorial erstellst, freue ich mich schon riesig was dazu zu lernen...da ich auch noch frischling bin...

:D

edit:
ohne das ich nen plugin dafür brauche...

### [#12](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/12) · Imagine · 2005-07-14

Hallo Proximo,

als Ergänzung hierzu

> Als Erstes muß ich erwähnen das große Teile dieser Printversion irgendwo in Schnippseln im Buch "Typo3 Enterprise Content Management" der Open Source Press zu finden sind.

Es sind die Seiten 396 bis 399.

Gruß

Imagine

### [#13](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/13) · Imagine · 2005-07-14

> man braucht eine Extension, welche sich plugin.alt.print nennt und vorinstalliert ist. Diese muss einfach im Template unter "include static" integriert werden und dann klappts auch.

Richtig, die kenne ich auch. Nur da habe ich dieses Problem hier
[/d/27312-druckansicht-funktioniert-nicht](https://www.typo3.net/d/27312-druckansicht-funktioniert-nicht)

Die Seite wird zwar aufgerufen, allerdings nicht der Inhalt unter ###INHALT### eingefügt, obwohl dieser Marker bei den normalen Seiten funktioniert.
Wie hast Du das hinbekommen????

Imagine

### [#14](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/14) · Amelia · 2005-07-18

Einen Fehler gibt es übriegens noch:

Du schreibst:

> "Als aller erstes füge ich nun ins Haupttemplate, UNTER ALLES, vorallem AUßERHALB JEDER KLAMMER folgenden TS im SETUP ein:"

"Unter Alles" ist falsch, es muss genau über allem stehen, da TS ja zeilenweise abgearbeitet wird! Und ich muss das Printing ja erst definieren, bevor ich es meinem Marker zuweise! Sonst passiert ja nix, gell ;o)

Und nun hätte ich noch eine Frage:
**Wie bekomme ich die Print-Funktion nun meinem print-Template und meinem Print-CSS zugewiesen ?**
Ich dachte, das würde reichen. Scheint aber nicht so:

```typoscript
plugin.alt.print.file.stylesheet = fileadmin/css/print_style.css
plugin.alt.print.file.template = fileadmin/templates/print.html
```

### [#15](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/15) · Moeffz · 2005-07-18

Dazu mal eine Frage:
Was ist für Dich das Print-Template? Bzw. wo und wie hast Du das in Dein Projekt eingebaut?
Du hast schon mehrere Basis-Templates, die Du per include einbindest, oder?

### [#16](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/16) · Amelia · 2005-07-18

Achso, stimmt hätte ich erwähnen sollen...

Mein print-Template ist eine HTML-Datei, welche definiert, wie die Printseite aussehen soll!
Ich fände es schon super,wenn er nicht einfach eine weisse Seite nimmt und dort den text reinhaut! :o)

@Moeffz:
Was meinst Du mit Basis-Templates ???

### [#17](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/17) · Proximo · 2005-07-18

*Kopfschüttel* ich hab mal Screens gemacht sonst glaubt man es mir wieder nicht...

> "Unter Alles" ist falsch, es muss genau über allem stehen, da TS ja zeilenweise abgearbeitet wird! Und ich muss das Printing ja erst definieren, bevor ich es meinem Marker zuweise! Sonst passiert ja nix, gell ;o)

Tut mir Leid da liegst leider du falsch, wenn es nämlich wirklich zeilenweise gehen würde könntest du nicht kreuzreferenzieren und keine Verarbeitungen bzw Renderring wiederholen!

Auch veränderen von Temporärobjecten oder wiederholte Abarbeitung wäre umöglich!

```typoscript
temp.GIF = IMAGE
temp.GIF.file = GIFBUILDER
temp.GIF.file {
   XY = [10.w] + 6, [10.h] + 6
   backColor = #FFFFFF

   10.offset = 3, 3
   10 = TEXT
   10.text.field = subtitle // title
   10.textMaxLength = 200
   10.fontSize = 13
   10.fontFile = fileadmin/fonts/ARIALBD.TTF
   10.fontColor = #000000
   10.niceText = 0
```

Hast du dir schonmal überlegt warum DAS funktioniert?

Nach deiner Erklärung würde als 1. **XY = [10.w] + 6, [10.h] + 6** abgearbeitet werden, dann **10.fontSize = 13**, dies ist aber unmöglich, woher sollte er ohne die Schriftgröße die höhe und die Länge des Textes errechnen können? (Computer nun Hellseher?!)

Den 2. Beweiß dazu liefert mein TS vom Haupttemplate (ja das funktioniert!)

[Bild: typo3.ideefix.net/…/ts_print_2.jpg](http://typo3.ideefix.net/chaos/langzeitdaten/ts_print_2.jpg)

Wie man unschwer erkennen kann ist der Scrollbalken ganz unten... also Ende der Seite (das ist das Maintemplate)

Mit den Markern hast du allerdings recht, da die ausgelagert sind (ja das Haupttemplate ist so schon über 50 Zeilen expandiert) werden die vorher abgearbeitet... ich habe es allerdings getestet... solange ich temps habe kann ich die überall hinschieben sie werden so-wie-so abgearbeitet (marker allerdings müssen vorher eingebunden werden!)

Was das mit "plugin.alt.print"... das kann ich leider nicht bestätigen, bei mir sieht das so aus:

[Bild: typo3.ideefix.net/…/ts_print_1.jpg](http://typo3.ideefix.net/chaos/langzeitdaten/ts_print_1.jpg)

Ach ja das mit dem CSS:
Wie schon im oberen Bild zu sehen:

```typoscript
# Mein DIV-Layout
includeCSS.file1 = fileadmin/template/sub/res/layout_print.css
# Mein Style für Schrift, Tabellen und CO
includeCSS.file2 = fileadmin/template/sub/res/stylesheet_print.css
```

MFG Proximo

### [#18](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/18) · Moeffz · 2005-07-18

Das hatte ich befürchtet. Es geht um so etwas wie Punkt drei bei folgendem Beitrag:

<http://www.typo3forum.de/forum/list/list_post//27411/>

Wenn Du es nicht über die Ordnerstruktur lösen willst, machst Du das so:
- Links auf "Liste", dann auf die Seite, auf der Dein Haupttemplate (TS) liegt (meist der globus). Dann steht da auch die Rubrik "Template", in der Dein Template (TS) steht (Sonst bist Du falsch.) Dort stehen vielleicht aber auch noch mehr Templates (TS). Steht hier Dein Print-Template (TS) - nicht das Printtemplate (HTML), das wäre ja Blödsinn.
- Das Printtemplate (TS) kannst Du hier einfügen, indem Du den Button "Neuen Datensatz nach diesem anlegen" anklickst. Als Namen gibst Du meintewegen Print ein und als Setup den Code von Proximo (temp.Print=COA usw.). Speichern.
- Dann gehst Du in der Listenansicht auf das Bearbeitensymbol Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template". Ein Klick auf das Print und es steht in der Liste.
- Im Feld "Setup" Deines Maintemplates fügst Du zu dem TypoScript-Teil Deiner normalen Seite die Markerzuweisung hinzu (marks.DRUCKEN < temp.PRINT). Was passiert denn da? Der Marker ###DRUCKEN### wird angesprochen. Ihm wird der temp.PRINT-Teil zugewiesen. Den haben wir in einem anderen Template (daher das temp), welches wir einen Schritt zuvor als Basis-Template eingebunden haben.

- Ganz an das Ende außerhalb jeder Klammern fügst Du außerdem den Teil (print = PAGE - vgl. proximo-Code) hinzu.

Folgendes beachten:
- In Template(HTML) Deiner normalen Seite sollte der Marker "###DRUCKEN###" vorhanden sein.
- Nach dem Code von proximo benötigst Du keine eigene html-Vorlage für Deine Druckausgabe. Es wird automatisch vom Inhalt die linke Spalte sowie der normale Content übernommen (Ich lasse mich hier gerne berichtigen).

Dieses verteilen des Codes auf mehrere Templates(TS) ist elementar, wenn Du nicht im Code ersticken willst. Wenn Du das bisher noch nicht gemacht hast, hol' es nach und lies dazu, was Du finden kannst (Ist im Buch der Open Source Press sehr gut beschrieben.).

### [#19](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/19) · Amelia · 2005-07-18

@Proximo:

Mmhhh, also ich habe mir den Template-Analyzer angeguckt und danach war das die einzige Erklärung für mich. Wenn die Print-Fkt. bei mir ganz unten steht und ich vorher aber schon den Marker zuweise, funktioniert es nämlich nicht! Definiere ich die Funktion aber vorher (was ich auch logisch finde, weil nur dann hat er ja auch was zuzuweisen), dann klappt es alles wunderbar! #paralyzed#

Okay also das CSS bekomme ich included! Das klappt! 8-)
Aber wie schaffe ich es, dass er auch das richtige HTML-Template benutzt !? :/ Muss ich das über eine extra Seite machen, die ich anlege!?

### [#20](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/20) · Proximo · 2005-07-18

Danke ich brauch keine Hilfe bei der Ordnung meines TS-Codes #giggle# , ich habe darüber gerade ein Tutorial geschrieben *lol*

[/d/27411-saubere-handhabung-von-ts-code](https://www.typo3.net/d/27411-saubere-handhabung-von-ts-code)

Das mit den Templates stimmt nur halb... meine Lösung war eine Lösung ohne Templates... einfach eine Leere Seite völlig ohne CODE oder Html-Template (ja genau garkeins)!

Ich weiß das viele Programmierer dazu neigen irgendwelche Templates in der Druckversion zu verwenden, aber genau das ist meistens der Fehler! Wenn jemand eine Seite ausdrucken will will er genau das was er da sieht... und zwar NUR den Text der informativ ist (meistens der in der Hauptspalte oder in mehrere aufgeteilt wenn nötig und dann untereinander oder per wrap nebeneinander)

Auf der Ausgedruckten Seite steht links oben der Titel der Webseite, Rechts oben der Link und auf der Seite in der Mitte der Informative Text der Seite!

Wenn man noch unbedingt Logos möchte, bindet diese mit einem netten COA ein und zwar als simples "Element". In diesem Fall ist 5, auf den Screen, die Beschreibung für den gesammten Inhalt. Eingebunden habe ich dabei noch das Firmenlogo in der Version mit weißem Hintergrund (auf Wunsch der Firma)

MFG Proximo

### [#21](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/21) · Amelia · 2005-07-18

@Moeffz:

> Dann gehst Du in der Listenansicht auf das Bearbeitensymbol Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template". Ein Klick auf das Print und es steht in der Liste.

Ich kann es nicht finden:
[Bild: 666kb.com/…/10lnvf2o0t6v4.jpg](http://666kb.com/i/10lnvf2o0t6v4.jpg)

> Nach dem Code von proximo benötigst Du keine eigene html-Vorlage für Deine Druckausgabe. Es wird automatisch vom Inhalt die linke Spalte sowie der normale Content übernommen.

Ja das ist ja okay, nur möchte ich das trotzdem gern in meiner eigenen HTML-Vorlage haben !  #paralyzed#

### [#22](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/22) · Amelia · 2005-07-18

@Proximo:

Ja aber ich möchte doch zumindest die Strukturierung der Seite beibehlaten.
Es müssen ja keine Bild dabei sein - sollen es auch nicht in der Druckversion - das ist richtig!
Aber das Textfeld soll in meinem Fall nicht breiter als 561px sein und 50 px entfernt vom linken Rand stehen und genau dadrüber soll das Logo positioniert sein. Wie soll ich das denn sonst hinbekommen, wenn nich über ein HTMl-Template?

Bin doch noch ein kleines Newbie - noch nix wissen tun, aber lernwillig sein! ;o)

### [#23](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/23) · Moeffz · 2005-07-18

1. Listenansicht (links: Web -> Liste)
2. auf den Seitentitel des root _nicht_ das Symbol daneben klicken - dann erscheint
3. rechts eine Liste der Elemente, die sich auf dieser Seite befinden - da ist auch eine Liste der Templates, der Backenduser (z.B. der admins). Das müßtest Du doch kennen.

Ich weiß nicht, wie Du Dich in die Ansicht zum Bearbeiten der Seite verirrt hast.

### [#24](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/24) · Proximo · 2005-07-18

Ok probieren wirs ;)

Das is die ii-ekel-Ausführung einer Templateverarbeitung *g* aber sie ist sehr kurz:

```typoscript
print.10 = TEMPLATE
print.10 { 
template = FILE 
template.file = fileadmin/xyz.html 
workOnSubpart = DOKUMENT 
subparts.CONTENT < styles.content.get 
}
```

Probleme:

- SO nicht auslagerbar und bei diesem Beispiel auch nicht empfehlenswert
- Marker- bzw Subparteinsatz erforderlich
- workOnSubpart-Subparts müssen manuell platziert werden weil kein Autopharser dazwischensteht!
- Verführt zur Überausführung einer Druckfunktion

EDIT: Auch mit Wraps ist viel lösbar, auch ein kurzes Typotemplate wär vielleicht besser... (sowas wie die Standardtemplates die in Typo integriert sind... "glück" und co)

MFG Proximo

EDIT2: Oben ist nachzulesen wie das geht... oft reicht schon ein "5.wrap = <table..." (vorrausgesetzt 5 ist der gesammte inhalt der Seite)

### [#25](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/25) · Amelia · 2005-07-18

@Moeffz:

> Dann gehst Du in der Listenansicht auf das **Bearbeitensymbol** Deines MainTemplates (Steht in der Templateliste ganz oben) und schaust nach dem Kästchen "Include Basis Template".

--> Also hab ich das getan!

@Proximo:
Also müsste ich das dann doch komplett auslagern !? *arg* das würd ich auch gern verhindern :/

> EDIT2: ... "5.wrap = <table..." (vorrausgesetzt 5 ist der gesammte inhalt der Seite)

Wie meinst Du das "ist der gesamte Inhalt der Seite" !?

Jetzt aber erstmal STOP: Ich seh jetzt gar nicth mehr durch! Muss mich hier erstmal sortieren!!!  :o

### [#26](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/26) · Proximo · 2005-07-18

Versuch doch einfach mal die ganz einfache variante und vergiss das ganze andere komplizierte:

Bei dir steht irgendwo sowas wie

```typoscript
print {
10 < styles.content.get
}
```

um ein Logo hinzuzufügen:

```typoscript
print {
5 = IMAGE
5.file = fileadmin/.../images/logo.gif
10 < styles.content.get
}
```

So war das nämlich eigendlich gedacht...

MFG Proximo

EDIT: Ich sagte oben das muß man NICHT auslagern..  aber vergiss das einfach, das ist BSP wie man eine HTML-Quelle (also ein HTML-Template) einbindet... ziemlich sinnlos für ne Druckversion...

### [#27](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/27) · Amelia · 2005-07-18

Ja das ist schon klar! Aber dann habe ich doch die Sachen alle noch nicht richtig positioniert! Also das Logo linksbüdnig (steht jetzt mittig) den Text nur 561 px breit (nicht 100%) und die Überschriften drüber (nicht mittig!)!

### [#28](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/28) · just2b · 2005-07-18

> **Amelia schrieb:**
>
> den Text nur 561 px breit (nicht 100%)

etwas OT, muss aber sein!
genau DAS soll bei einer druckversion aber nicht sein! genau da will ich den text auf 100$ am papier und nicht so ein kleines rändchen!

### [#29](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/29) · Amelia · 2005-07-18

Ja schön, dass Du das soll willst! Mir wäre das auch so recht, aber der Kunde möchte das anders! Also soll es so sein ! Gell :o)

### [#30](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/30) · Proximo · 2005-07-18

Du hast zwar komische Kunden (vorallem welche die Papier und Druckfarbe in Mengen haben) aber:

```typoscript
      print {
      5 = IMAGE
      5.file = fileadmin/.../images/logo.gif
      10 < styles.content.get
      }
```

wird nun zu:

```typoscript
   print {
      10 = TEMPLATE
      10 {
      template = FILE
      template.file = fileadmin/xyz.html
      workOnSubpart = DOKUMENT
      subparts.LOGO = IMAGE
      subparts.LOGO.file = fileadmin/.../images/logo.gif
      subparts.CONTENT < styles.content.get
      } 
   }
```

Aber vergiss nicht:

Du hast nun keinen Autopharser mehr der dir das "workOnSubpart" übernimmt... also mußt du manuell welche einfügen! (und in diesem Fall heißt dieser Subpart "<!-- ###DOKUMENT###--><!-- ###DOKUMENT###-->", in diesen kommt dann der Content wie Logo und CO rein der durch Subparts oder Marker definiert wird! Jeder Content, nicht so wie der subpart "CONTENT" (dazu gehört alles woran Typo pfuschen darf, alles andere ist "das HTML-Template"... unveränderbar von Typo)

Nun lies dir nochmal genau durch was da oben steht... sooo und jetzt mach es!

MFG Proximo ;)

PS: Natürlich löst das nicht dein Problem, aber nun kannst du "alles was du willst" im Template "fileadmin/xyz.html", oder wie es sonst heißt, definieren!

### [#31](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/31) · Amelia · 2005-07-19

Autopharser - was ist das ?
Habs hinbekommen. Alles ist schick :o) Supi! DANKE!  8-)

### [#32](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/32) · Moeffz · 2005-07-19

Ein Rechtschreibfehler. Da ist ein 'h' zu viel.

Der Rest steht dann in Modern Template Building Teil 1. Grob gesagt macht der Dir aus Deiner Designvorlage das HTML-Template, wenn ich es richtig verstanden habe.

### [#33](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/33) · Amelia · 2005-08-01

Sagt mal, wie bekomm ich denn in die Druckseite (Vorschau)noch einen (Druck-)Button rein?

Oder: Wie kann ich denn die Seite 10.wrap=|.98.html ansprechen?

### [#34](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/34) · Proximo · 2005-08-01

?! Druckbutton? Ich weiß das klingt jetzt ungünstig (wer verwendet schon gerne js-Funktionen...) aber binde doch einfach folgendes in deinen BODY-TAG ein:

```html
<body onLoad="javascript:window.print()">
```

Simple aber effektiv... deine Kunden bekommen ein schönes Fenster das sie auffordert einen Drucker, bzw Seitenanzahl @ Co zu wählen... sollte der Kunde (was-weiß-ich-warum aber man weiß bei deinen Kunden ja nie ;) ) nun doch nicht drucken wollen kann er hier den Druckvorgang sogar noch abbrechen!

MFG Proximo

### [#35](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/35) · Amelia · 2005-08-01

Okay ich probier das mal aus! Ich eprsönlich finde js auch nicht schön, aber der Kunde mags es so haben...

PS: Wie schreib ich das im CSS?

### [#36](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/36) · adventuremaker · 2005-08-01

Sorry, aber ohne jetzt persönlich werden zu wollen:
Hast du auch nur eine minimale Vorstellung von dem, was du machst?
Du scheinst echt die grundlegensten Techniken nicht verstanden zu haben. Tut mir echt leid, aber soviel Engagement und Einarbeitung kann man denke ich schon erwarten, dass man wenigsten die Unterschiede zwischen JavaScript und CSS weiß, bevor man sich mit Content-Management befasst und das sogar noch "Kunden" zumutet!
Korrigiert mich, wenn ich das flasch sehe, aber ich denke nicht, dass dieses Forum für solche _trivialen_ Dinge gedacht ist.

Nichts gegen Anfänger, bin selbst einer. Aber sowas...

Aber echt!

### [#37](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/37) · Proximo · 2005-08-01

Ich hab mich zwar auch grad gewundert, aber um das abschließen zu können... Probiers doch mal mit TS im bestehenden Druck-TS also bei:

print = PAGE
print {
...
}

und schreib

print = PAGE
print {
bodyTag =<body onLoad="javascript:window.print()">
}

MFG Proximo

### [#38](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/38) · Amelia · 2005-08-01

Momentmal! Also bevor Du Dich hier so niederträchtig auslässt:
Du hast meine Frage wohl falsch verstanden, bzw ich habe mich falsch ausgerückt!
Der Body-Tag wird u.a. von Typo3 erzeugt, richtig!? Ich setze per CSS die Parameter für den Body-Tag.

Proximo schrieb:

> binde doch einfach folgendes in deinen BODY-TAG ein:<body onload="javascript:window.print()">

Daher meine Frage: Wie soll ich das in meinen Body-Tag einbinden, wenn dieser doch im CSS definiert wird.
Ist das also eine so unmöglich Frage, welche ich hier stellte!?

### [#39](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/39) · Proximo · 2005-08-01

Was sucht der Bodytag genau im CSS? Naja ich misch mich da normal nicht ein aber... das ist wohl Sache vom Typo... und falls nicht dann HTML Hardcoding...

MFG Proximo

### [#40](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/40) · Amelia · 2005-08-01

Okay dann die Frage etwas anders und ganz simple: Wie komme ich an den von Typo3 erzeugten Bodytag?

### [#41](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/41) · Proximo · 2005-08-01

?!

```html
print.bodyTag =<body onLoad="javascript:window.print()">
```

?!???!?

Soweit ich weiß der einzige sinnvolle Weg... (meiner Meinung nach)

MFG Proximo

PS: Steht übrigens 2 Posts drüber

### [#42](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/42) · Amelia · 2005-08-01

Okay. Danke! das klappt!

Werde wohl noch an meiner Fragestellung arbeiten müssen!  ;)

### [#43](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/43) · Fabian-K · 2005-08-02

Aaaaaaaaaaaaaaargh.. hiiiiiiiiiiiiiilfe!!!

Ich benutze realurl und den Source von der 1. (bzw. 2.) Seite des Threads hier.

Aber immer wenn ich dann auf 'Drucken' klicke, wird die Seite 'www.foo.de/foo/bar/html.98.html' aufgerufen..

Why?

Hier mein Source (main-template; gaaaaanz oben an erster stelle) :

```typoscript
# DRUCKEN
temp.PRINT = COA
temp.PRINT {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
   
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html
}
 
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT.10 >
temp.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]

print = PAGE
print {
   typeNum = 98
   bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
 
   #10 < styles.content.getLeft
   20 < styles.content.get
   #30 < styles.content.getRight
   #40 < styles.content.getBorder
}
```

wtf?
Was mache ich falsch?
Wieso wird ein falscher Link gesetzt?

Achja, zum Thema RealURL:

```typoscript
# RealURL
config.simulateStaticDocuments = 0
config.baseURL = 1 
config.tx_realurl_enable = 1
```

(auch im main-template; direkt unter dem Druck-Zeugs)

Kann mir jemand sagen was ich falsch mache?

thanks.

### [#44](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/44) · Proximo · 2005-08-02

Das ist ziemlich einfach:

```typoscript
   10.listNum.splitChar = .
   10.listNum = 1
```

Ich habe nämlich die variable von der SPRACHE auchnoch hier eingebunden... also:

seite.98.0.html

Die 0 Stellt die aktuelle Sprache dar...

Lösung: Ändere die Zahl von "10.listNum = 1"...

MFG Proximo

### [#45](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/45) · Fabian-K · 2005-08-02

Hi!
Ja is mir auch gerade eingefallen.. hatte nur das beim Split durcheinander gebracht, dass 1 immer der erste eintrag NACH dem splitChar ist xD

Naja okay, sieht gut aus.. jetz wird "foobar.de/foo/bar/foobar.98.html" aufgerufen, aaaaaaaaaaaber:

```html
Error. Reason: Segment "foobar.98" was not a keyword for a postVarSet as expected!
```

Das kommt beim aufrufen des Drucken-Links.

Why? Und wie kann ich es verhindern?

### [#46](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/46) · Fabian-K · 2005-08-03

Okay, Sector cleared. Problem geloest.

```typoscript
# DRUCKEN
temp.PRINT = COA
temp.PRINT {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
   
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 0 # wenn der wert auf 1 steht, wird ein falscher Link ausgegeben.
   10.wrap = |/print
}
 
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT.10 >
temp.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]

print = PAGE
print {
   typeNum = 98
   bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
 
   #10 < styles.content.getLeft
   20 < styles.content.get
   #30 < styles.content.getRight
   #40 < styles.content.getBorder
}
```

Es muss '10.wrap = |/print' lauten, anders geht es nicht.

thanks. :)

### [#47](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/47) · Proximo · 2005-08-03

np... /print? Hmm bin ich wirklich überfragt... aber wenn irgend eine Extension das fordert... naja dann schreibt man es hald hin ;)

MFG Proximo

### [#48](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/48) · Fabian-K · 2005-08-03

Ja anscheinend verlangt RealURL dass man einen Ordner angibt.

Frag mich nicht warum, is halt so ;)

### [#49](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/49) · sven_hom · 2005-08-03

Hallo zusammen!

@Fabian-K: Danke für den Hinweis in dem anderen Thread. Könntest Du bitte mal einen Auszug aus deiner localconf.php posten, der sich auf die Einstellungen für Real-URL bezieht?

Vielen Dank im Voraus,
Sven

### [#50](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/50) · Rookie · 2005-09-12

Hallo zusammen,

erstmal ein großes Dankeschön an die beteiligten Autoren. Durch diesen Thread konnte ich meine Drucklinks erstmal wieder zum Laufen bringen.

Auch zeigt mir RealUrl die Seiten .../print.html an.
Dazu habe ich lediglich ein .html in das Setup eingefügt

```typoscript
# Erzeugung des Links für Druckversion
temp.PRINT_Text = COA
temp.PRINT_Text {
   wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print"><img src="fileadmin/images/b_print.png" border="0" alt="Drucken" /></a>
   
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 0 # wenn der wert auf 1 steht, wird ein falscher Link ausgegeben.
   10.wrap = |/print.html
}
 
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT_Text.10 >
temp.PRINT_Text {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]
```

und in der RealUrl ext_localconf den Wert im fileName angepasst:

```php
...
  'preVars' => array(
    array(
      'GETvar' => 'L',
      'valueMap' => array(
        'en' => '2',
        'de' => '1',
      ),
      'GETvar' => 'type',
      'valueMap' => array(
        'print' => '98',
        'pdf' => '123',
      ),
      'noMatch' => 'bypass',
    ),
  ),
  'pagePath' => array(
    'type' => 'user',
    'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    'spaceCharacter' => '-',
    'languageGetVar' => 'L',
    'expireDays' => 3,
    'rootpage_id' => '1'
  ),
  'fileName' => array (
    'defaultToHTMLsuffixOnPrev' => 1,
    'index' => array(
      'page.html' => array(
        'keyValues' => array (
          'type' => 1,
        ),
      ),
      'print.html' => array(
        'keyValues' => array(
          'type' => 98,
        ),
      ),
      'page.pdf' => array (
        'keyValues' => array (
          'type' => 123,
        ),
      ),
    ),
  ),
...
```

Jetzt habe ich nur noch zwei Fehler:
Die eingebundenen CSS-Dateien

```typoscript
# Erzeugte Druckseite mit Links zum Drucken und Schließen
print_page = PAGE
print_page {
  typeNum = 98
  5 = TEXT
  5.value = <div align="right"><a href="javascript:self.print()" title="Seite drucken">Drucken</a> <a href="javascript:self.close()" title="Seite schlie&szlig;en">Seite schließen</a></div>
  #10 < styles.content.getLeft
  20 < styles.content.get
  #30 < styles.content.getRight
  #40 < styles.content.getBorder
  #20 = CONTENT
  #20 < styles.content.get

  includeCSS { 
    file4 = fileadmin/template/main/res/dropdownsitemap.css
    file3 = fileadmin/template/main/res/mininews.css
    file2 = fileadmin/template/main/res/print.css 
  }

}
```

greifen nicht. Sie sind zwar im Quelltext eingetragen:

```html
<!-- 
	This website is brought to you by TYPO3 - get.content.right
	TYPO3 is a free open source Content Management Framework created by Kasper Skaarhoj and licensed under GNU/GPL.
	TYPO3 is copyright 1998-2005 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
	Information and contribution at http://www.typo3.com
-->

	<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/dropdownsitemap.css" />
	<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/mininews.css" />
	<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/print.css" />
	<title> ::: Inf-O-Net ::: Telematik Solutions</title>

	<meta name="generator" content="TYPO3 3.8 CMS" />
	<script type="text/javascript">
```

aber es sind keine Formatierungen auf der Seite zu sehen. Wird die Druckseite ohne RealUrl aufgerufen nach dem Motto

```html
../index.php?id=505&type=98
```

wird die Seite komplett richtig angezeigt. Der Quelltext ist der Gleiche. Nur die aufgerufene URL ist unterschiedlich.

Und zur zweiten Herausforderung:
Auf der Startseite wird der Drucklink falsch gesetzt.
Im Quelltext steht

```html
href="//print.html"
```

wodurch natürlich der Link <http://print.html/> entsteht. Und der ist nicht erreichbar. Erst wenn ich eine der Unterseiten aufrufe, wird der Link wieder richtig gesetzt.
Nehme ich den Slash im TypoScript Zeile 10 (s.o.) raus, funktioniert zwar die Startseite, aber die Unterseiten nicht mehr.

Sind diese Probleme bei jemandem auch schon mal aufgetreten?
Thx Rookie

### [#51](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/51) · AnneK · 2005-09-17

Hallo Rookie,

> ...wodurch natürlich der Link <http://print.html/> entsteht. Und der ist nicht erreichbar. Erst wenn ich eine der Unterseiten aufrufe, wird der Link wieder richtig gesetzt.
> Nehme ich den Slash im TypoScript Zeile 10 (s.o.) raus, funktioniert zwar die Startseite, aber die Unterseiten nicht mehr.
>
> Sind diese Probleme bei jemandem auch schon mal aufgetreten?

Ja, bei mir sind die Probleme auch aufgetaucht... Ich habe dann in der DOC zu der extension folgenden Hinweis gefunden:

> **value:** emptyUrlReturnValue
>
> **type:** string
>
> **description:** If the URL is empty it usually is meant to be a link to the frontpage.
>
> If you set this value to a string, that will be the URL returned if the URL is otherwise empty.
>
> If you set this value true (PHP boolean, "TRUE"), then it will return the baseURL set in TSFE.
>
> Setting it to "./" should work as a reference to the root as well. But it is not so beautiful.

Ich habe dann in die **CONSTANTS** des übergeordneten Templates folgendes eingetragen:

```typoscript
plugin.tx_realurl_pi1.emptyUrlReturnValue = TRUE
```

Danach kommt jetzt auch auf der Startseite die richtige URL.

Gruss AnneK
_______________________________

**Nachtrag:**

Leider wurde eine Druckseite oder die Seite als PDF nur dann ausgegeben, wenn ein Pfad (z. Bsp.: <http://url/%5Bb%5Dhome>[/b]/print.html) angegeben war.

**Lösung:**

In der ext_localconf.php folgenden Eintrag machen:

```php
  'redirects' => array(
    '' => 'home/',
  ),
```

### [#52](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/52) · imu · 2005-09-18

Mal eine Frage:
 ich habe meine Druckversion damit erstellt, daß ich nur die Zeile:

```php
<link rel="stylesheet" type="text/css" media="print" href="fileadmin/d3gmbh/css/d3gmbh_print.css" />
```

in das HTML-Template integriert habe. Und dann eben
das Stylesheet so gestaltet habe, daß nur der Text-Haupt-bereich, keine Navi, keine Hintergrundbilder angezeigt werden. Was spricht eigentlich dagegen?
Drücke ich auf den Printbutton des Browsers wird dieses Template ausgeführt, statt des "normalen", für den Screen bestimmten.
Ist diese ganze Printversion-Erstellung über TS wirklich notwendig?

### [#53](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/53) · theo · 2005-09-18

> **imu schrieb:**
>
> Mal eine Frage:
> ...
> Ist diese ganze Printversion-Erstellung über TS wirklich notwendig?

Nö.

### [#54](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/54) · imu · 2005-09-19

> **imu schrieb:**
>
> Schreibfehler oben
> ... muss heißen
> Drücke ich auf den Printbutton des Browsers wird dieses Stylesheet ausgeführt, statt des "normalen", für den Screen bestimmten.

@theo
... aber warum dann ? ..., ist diese TS-Printversion einfach ein Überbleibsel aus den Zeiten, als der CSS-Standard noch nicht soweit war und statt über Klassen über HTML-Format-Tags formatiert wurde?

### [#55](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/55) · Rookie · 2005-09-24

Hallo zusammen,

erstmal sorry, dass ich so lange nicht reagiert habe. Ich hatte ein paar Tage Urlaub  :D . Muss auch mal sein.

@AnneK
Danke für die Hinweise. Ich habe sie mal ausprobiert, hatte aber auf die Schnelle kein Erfolg. Der Link auf der Startseite ist immer noch ohne Domain. Muss ich wohl noch weiter testen. Ich konnte auf keinem der drei von Dir aus der Anleitung aufgeführten Wege die baseUrl einfügen.

@imu
Den Ansatz werde ich mal weiterverfolgen. Danke für den Einwurf. Das würde das Ganze natürlich wesentlich vereinfachen. Warum einfach wenn`s auch umständlich geht ;-).

Grüße
Rookie

### [#56](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/56) · Rookie · 2005-11-02

Hallo zusammen,

habe wie irgendwann mal bemerkt den Ansatz mit der Printversion per CSS weiterverfolgt. Dank @ imu. Durch die einfachen Zeile display: none; für die nicht-druckrelevanten Bereiche bleibt z.B. nur noch der interessante Hauptteil übrig.

Wer will kann ja noch mal seine Lieblingsschrift einstellen.
Vor allem hat das den großen Vorteil, dass man eine Seitenansicht mit Umbruchvorschau bekommt.

Wer weitere Vorschläge dazu hat, kann sich natürlich gerne melden. Neuigkeiten lese ich immer gerne :-).

Grüße
Rookie

### [#57](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/57) · firefox · 2005-11-03

ich danke imu tausendfach, genau wie rookie, denn css ist für mich die lösung. also:

- css konseqent nutzen
  weg mit plugin.alt.print
  keine zusätzliche anpassung der localconf.php

im html-template:

```html
<a href="javascript:self.print()"><img src="fileadmin/template/grafik/icon_print.gif" alt="drucken" title="drucken" /></a>
```

im ts-template setup hier mit templavoila:

```typoscript
# Default PAGE object:
page = PAGE
page {
   typeNum = 0
   10 = USER
   10.userFunc = tx_templavoila_pi1->main_page
   includeCSS {
      file2 = fileadmin/template/css/default.css
      file1 = fileadmin/template/css/print.css
      file1.media = print
   }
}
```

im default.css alles was ihr wollt also z.B.:

```html
#wasweissich {background-image:url(../grafik/wasweissich.jpg);
         background-repeat:no-repeat;
         width:500px;
         height:500px;
         position:absolute;
         top:10px;
         left:10px;}
```

im print.css:

```html
#wasweissich {display:none;}
```

alles andere muss nicht angepasst werden, also im ts-template nach wie vor:

```typoscript
# RealURL
config.simulateStaticDocuments = 0
config.baseURL = 1
config.tx_realurl_enable = 1
```

### [#58](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/58) · snoop86 · 2006-01-22

> **Proximo schrieb:**
>
> *Kopfschüttel* fangen wir nochmal an:
>
> Ich setze folgende Minimalzustände vorraus:
> - Installiertes Typo
> - Include static: styles.content (default) (im Maintemplate)
> - Inhalt in irgendeiner Spalte (auf der jeweiligen Seite)
>
> Als aller erstes füge ich nun ins Haupttemplate, UNTER ALLES, vorallem AUßERHALB JEDER KLAMMER folgenden TS im SETUP ein:
>
> ```typoscript
> temp.PRINT = COA
> temp.PRINT {
>    wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
>    
>    10 = TEXT
>    10.data = getIndpEnv:REQUEST_URI
>    10.listNum.splitChar = .
>    10.listNum = 1
>    10.wrap = |.98.html
> }
>
> [globalString = ENV:REQUEST_URI = *php?id*]
> temp.PRINT.10 >
> temp.PRINT {
>    10 = TEXT
>    10.data = getIndpEnv:REQUEST_URI
>    10.wrap = |&type=98
> }
> [GLOBAL]
> ```
>
> Und jetzt nochmal AUßERHALB JEDER KLAMMER genau drunter:
>
> ```typoscript
> print = PAGE
> print {
>    typeNum = 98
>    bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
>
>    10 < styles.content.getLeft
>    20 < styles.content.get
>    30 < styles.content.getRight
>    40 < styles.content.getBorder
> }
> ```
>
> Nachdem man dies einfach alles eingefügt hat OHNE ES ZU ÄNDERN darf man jetzt anfangen zu denken, man muß den inhalt von "temp.PRINT" nun in einen Marker oder Subpart befördern... das macht man am besten indem man schaut wo man seine anderen marker hat die zb so ausschauen können:
>
> ```typoscript
> marks.bild = IMAGE
> marks.bild.file = ...
> ```
>
> Genau unter so einen Eintrag schreiben wir dann:
>
> ```typoscript
> marks.PRINT < temp.PRINT
> ```
>
> Und im HTML-Template schreiben wir dann noch irgendwo (am besten auch ganz nah an irgendeinem vorhanden Marker damit wir auch ja nix falschmachen)
>
> ```typoscript
> ###PRINT###
> ```
>
> rein!
>
> Ich hoffe das war jetzt für alle verständlich!
>
> Schlusswort:
> Das was ihr 2 da anstellt hat 1. Jede Menge Klammern, ist 2. Kompliziert, 3. (in Folge) total unübersichtlich und 4. Ziemlich sinnlos^^
>
> Ja genau ich habe extra drauf verzichtert anzufangen alles zu verschachteln und zusätzlich noch Templates einzubinden weil die meisten Typoanfänger mehr Ahnung von CSS haben wie von Typo und sich deshalb so viel einfacher tun!
>
> Die größte Sinnlosigkeit die ich dabei gesehen habe ist allerdings:
>
> ```typoscript
> marks{
>       dein_marker = CONTENT
>       dein_marker{
>         table = tt_content
>         select {
>           where = colPos = 0
>           orderBy = sorting
>         }
>       }
>     }
> ```
>
> Da 1. "styles.content (default)" diese Aufgabe für uns übernimmt, und mann 2. keinen Marker braucht wenn man nur 1 Element ausgeben will *g*
>
> MFG Proximo
>
> Edit: Nachdem ich gesehen hab wir der Aufbau und die Strukturierung mancher Haupttemplates und TS in diesem Forum aussieht habe ich mich entschlossen das nächste Tutorial über "Strukturierung von TS und TS-Templates" also genauergesagt "Effizients und Übersichtlichkeit" zu schreiben (coming soon)

hi erstmal,
also ich hab genau die schritte gemacht die du oben beschrieben hast aber irgendwie bekomme ich überhaupt keine anzeige/output. wenn ich meine seite im FE anschaue sehe ich nirgends den link zur printversion. *verzweifle*

kann mir jemand helfen was ich vielleicht falsch mache. thxx

### [#59](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/59) · parallaxis · 2006-03-21

Moin!

Ich hab schon tief in der  Forensuche gekramt, doch leider nix zu meinem Problem gefunden:

Ich nutzte Statische Seiten, weil ein Kunde das so wünscht.
Die Url erscheint dann so:

<http://www.domain.de/*Seitenname*.*seitenid*.*sprachid*.html>

Die hier in dem Beispiel angegeben funktion klapp nicht.
Ich dachte zunächst ich hab mit listnumm einfach die falschen Werte extrahiert.

Doch als Printlink erschein auf den statischen Seiten immer:

<http://www.domain.de/index.php?id=*ID-der-Startseite*&ADMCMD_view=1&ADMCMD_editIcons=1&type=98>

Wenn ich mir die Seiten dynamisch anschaue, gehts wunderbar.
 :o

Weiß jemand was ich falsch mache?
Das Typoscript habe ich 1:1 aus dem Post von Proximo.
Typo3-Version ist 3.7

### [#60](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/60) · Rookie · 2006-03-21

Moin, moin,

die Probleme hatte ich am Anfang auch.
Aber seit dem ich CSS nutze brauche ich diese komplizierte Konfiguration nicht mehr.
Einfach eine separate CSS-Datei mit media=print einbinden. In dieser CSS-Datei die nichtgewünschten Container mit display:none ausblenden und schon hast Du Druckansicht und sogar Druckvorschau im Browser.

Was hindert Dich daran neue Wege auszuprobieren?

Grüße Rookie

### [#61](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/61) · parallaxis · 2006-03-21

Hi!

Zwei Dinge hindern mich:
Das derzeitige CSS/Template hat jeman anderes gemacht.
Das is sowas von Kraut und Rüben...  #angry#

Und zum anderne Wünscht der Kunde das genau so.
Aber ich denke das mit dem CSS kann ich ihm auch erklären. ;)

Danke    :D

### [#62](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/62) · slechelmayr · 2006-04-03

Hi,

ich hatte gerade ein Projekt, bei dem das ganze so nicht funktioniert hat. Problem war, dass simulateStaticDocuments so konfiguriert war, dass die PageID *nicht* nicht in der URL vorkommt (addTitle = 0)

mit folgender Anpassung funktioniert es dann trotzdem wunderbar:

```typoscript
   10.data = TSFE:id
   10.wrap = |.98.html
```

statt

```typoscript
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html
```

Also sprich, die PageID statt REQUEST_URI verwenden.

EDIT: ups.. habe gerade erst gesehen, dass der Thread schon sieben Seiten lang ist. Falls das schonmal gepostet wurde tut's mir leid fuer die Redundanz  :D

### [#63](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/63) · gunther · 2006-08-10

**Ergänzung bei der Verwendung von tt_news + simulateStaticDocuments:**

ich bin wirklich etwas spät dran aber mir hat das Ausgangsposting von Proximo sehr weitergeholfen und gefallen: keine extra Extension und kein seitenlagnes TS. Nur die tt_news wollten nicht so richtig.

Ergänzen:

```typoscript
#teil static
   
20 = TEXT
20.data = GPvar : tx_ttnews|tt_news
20.wrap = ?&tx_ttnews[tt_news]=|
20.stdWrap.htmlSpecialChars = 1
20.required = 1

#teil kein static

temp.PRINT.20 >
```

Ganzes Listening:

```typoscript
#printpage

temp.PRINT= COA
temp.PRINT {
   wrap = <a href="|" target="_blank">Seite drucken</a>

# Diese Methode verwendet Typo wenn wir SimulateStaticHTML verwenden... sie fügt uns
# den Type in die URL ein, und zwar so das SimulateStaticHTML damit zurechkommt
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.listNum.splitChar = .
   10.listNum = 1
   10.wrap = |.98.html

   20 = TEXT
   20.data = GPvar : tx_ttnews|tt_news
   20.wrap = ?&tx_ttnews[tt_news]=|
   20.stdWrap.htmlSpecialChars = 1
   20.required = 1

}


# Diese Methode verwendet Typo wenn wir kein SimulateStaticHTML verwenden
[globalString = ENV:REQUEST_URI = /index.php*]
temp.PRINT.10 >
temp.PRINT.20 >
temp.PRINT {
   10 = TEXT
   10.data = getIndpEnv:REQUEST_URI
   10.wrap = |&type=98
}
[GLOBAL]
```

grüße gunther

### [#64](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/64) · RIBS · 2006-08-30

Hallo

Ich bin einiger Zeit, für eine mit Typo3 generierte Website für jede Seite eine
Druckversion zu erstellen. Diese Beiträge haben mir schon ein Stückchen weitergebracht, aber noch nicht zum Ziel. Ich habe es mit der Fassung versucht, wie sie von Proximo vorgeschlagen wird. Nur das ich statt

wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>

wrap = <a href="index.php?id=|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>

verwende, weil sonst immer eine Seite aufgerufen wurde, die nicht vorhanden ist:

<http://localhost/quickstart/.98.html>

Ansonsten bin ich aber vorgegangen, wie vorgeschlagen. Mein Problem habe ist, dass ich immer nur die Startseite als Druckansicht aufgerufen bekomme und nicht die aktuelle Seite.

Wo könnte hier das Problem liegen?

Vielen Dank für einen Ratschlag im voraus

RIBS

### [#65](https://www.typo3.net/d/27214-lernen-am-beispiel-printversion/65) · slack1982 · 2007-01-08

Hallo,

möchte mich mal hier "nahtlos" einhängen und folgendes fragen:
Funktioniert die "Druckverion" bei euch auch im IE7?
Habe alle erforderliche Punkte gemacht und es klappt auch im Firefox.

PS: den TS-Code erspare ich mir an dieser Stelle, weil er genau so ist, wie auf der ersten Seite.

Danke im Voraus

Gruß Alex

Was ich soeben auch feststellen musste ist, dass er mir sporadisch einfach die exakt gleiche Seite aufruft ohne das Fenster "Drucken" anzubieten?!!
Vielleicht könnt ihr mir helfen.

---

Quelle: „Lernen am Beispiel: Printversion“, typo3.net, https://www.typo3.net/d/27214-lernen-am-beispiel-printversion
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
