Printen met eigen header en footer

Pagina: 1
Acties:
  • 219 views sinds 30-01-2008
  • Reageer

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Ik wil een script maken waarmee de standaard header en footer beiden worden vervangen door een gif-afbeelding (linksboven en rechtsonder komt een gif, en daartussen komt een tekst uit een database), dit alles om af te kunnen drukken. De uitdaging is dat ik geen gebruik mag maken van PDF en de tekst moet uit een database komen.

Nu is het niet zo'n probleem om de tekst uit de database te halen wel is het een probleem om de standaard header en footer weg te halen voor de print en te vervangen door een figuur.

Heeft iemand ideeën/suggesties, ik ben nu al een paar dagen heel internet aan het afstropen maar nergens kan ik iets vinden. Alvast bedankt voor de hulp

Verwijderd

Met welke taal ben je bezig?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Met deze summiere info is weinig te beginnen...

Heeft zo'n document al een standaard header/footer? Zoja, hoe ziet die eruit en waar wil je hem door vervangen?

Welke taal gebruik je? Hoe staat het in de database, oftewel moet je daar nog allerlei trucken mee uithalen voor je het kan printen?

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op maandag 15 april 2002 09:34 schreef ACM het volgende:
Met deze summiere info is weinig te beginnen...

Heeft zo'n document al een standaard header/footer? Zoja, hoe ziet die eruit en waar wil je hem door vervangen?

Welke taal gebruik je? Hoe staat het in de database, oftewel moet je daar nog allerlei trucken mee uithalen voor je het kan printen?
Sorry voor de summiere info.
Het document heeft geen standaard header/footer. Het script wordt voor gebruik op internet, en ik maak gebruik van PHP om uit de database teksten te trekken. Het gaat om een MySQL database en de tekst staat in een longtext veld en de titel die afgedrukt moet worden in een varchar. De tekst kan er gewoon uit gehaald worden, de tekst die in de longtext staat is opgemaakt (vette tekst, alinea's enz.) met html codes.

Het enige wat tot nu gebeurt is dat de tekst uit de database wordt gehaald, de titel wordt groot en de rest wordt normaal weergegeven. Maar browsers zetten altijd de titel in de header en het aantal pagina's in de footer. Dit moet dus vervangen worden door gifjes.

Ik hoop dat dit genoeg info is

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Dat kun je niet veranderen. Dat zijn client-side instellingen, en kun je vanuit code niet beinvloeden (soms helaas, meestal gelukkig).

PS je kan uiteraard wel gifjes onderaan je document zetten, en je kan met de juiste html tags ook pagebreaks opgeven, maar de header en footer zoals die in je browser zijn opgegeven bij de print properties, blijven geprint worden.

Exact expert nodig?


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op maandag 15 april 2002 09:48 schreef Crazy_D het volgende:
Dat kun je niet veranderen. Dat zijn client-side instellingen, en kun je vanuit code niet beinvloeden (soms helaas, meestal gelukkig).

PS je kan uiteraard wel gifjes onderaan je document zetten, en je kan met de juiste html tags ook pagebreaks opgeven, maar de header en footer zoals die in je browser zijn opgegeven bij de print properties, blijven geprint worden.
Het is wel te wijzigen heb ik nu ontdekt dmv een printtemplate te maken met xml codes. Ik heb er nu eentje maar weet niet hoe ik 'm moet gebruiken. Best stom eigenlijk, de code is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<HTML XMLNS:IE>
<HEAD>
<?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">
<STYLE TYPE="text/css">
.lorstyle
{
    width:5.5in;
    height:8in;
    margin:1in;
    background:white;   
    border:1 dashed gray;
}
.pagestyle
{ 
    background:#FFFF99;
    border-left:1 solid black;
    border-top:1 solid black;
    border-right:4 solid black;
    border-bottom:4 solid black;
    width:8.5in;
    height:11in;
    margin:10px;
    overflow:hidden;
}
.headerstyle
{
    position:absolute;
    top:.25in;
    width:5.5in;
    left:0.2in;
}
.footerstyle
{
    position:absolute;
    top:10.5in;
    width:5.5in;
    right:0.3in;
}
</STYLE>
<SCRIPT LANGUAGE="JScript">
var iNextPageToCreate = 1;
var bHeadersFootersAdded = false;

function AddFirstPage()
{
    newHTML  = "<IE:DEVICERECT ID='page1' MEDIA='print' CLASS='pagestyle'>";
    newHTML += "<IE:LAYOUTRECT ID='layoutrect1' CONTENTSRC='document' ONLAYOUTCOMPLETE='OnRectComplete()' NEXTRECT='layoutrect2' CLASS='lorstyle'/>";
    newHTML += "</IE:DEVICERECT>";

    pagecontainer.insertAdjacentHTML("afterBegin", newHTML);
    iNextPageToCreate = 2;
}

function OnRectComplete()
{
    if (event.contentOverflow == true)
      AddNewPage();
    else if (bHeadersFootersAdded == false)
    {
      //headfoot.textHead = printer.header;
      //headfoot.textFoot = printer.footer;
        headfoot.textHead = "AFDELING";
        headfoot.textFoot = 'Deventer Ziekenhuizen';
      headfoot.url = dialogArguments.__IE_BrowseDocument.URL;
      headfoot.title = dialogArguments.__IE_BrowseDocument.title;
      headfoot.pageTotal = document.all.tags("DEVICERECT").length;
      
      for (i = 1; i <= headfoot.pageTotal; i++)
      {
        headfoot.page = i;
        AddHeaderAndFooterToPage(i);
      }
      
      bHeadersFootersAdded = true;
    }
}

function AddNewPage()
{
    document.all("layoutrect" + (iNextPageToCreate - 1)).onlayoutcomplete = null;

    newHTML  = "<IE:DEVICERECT ID='page" + iNextPageToCreate +  "' MEDIA='print' CLASS='pagestyle'>";
    newHTML += "<IE:LAYOUTRECT ID='layoutrect" + iNextPageToCreate + "' ONLAYOUTCOMPLETE='OnRectComplete()' NEXTRECT='layoutrect" + (iNextPageToCreate + 1) + "'  CLASS='lorstyle'/>";
    newHTML += "</IE:DEVICERECT>";

    pagecontainer.insertAdjacentHTML("beforeEnd", newHTML);
    iNextPageToCreate++;
}

function AddHeaderAndFooterToPage(pageNum)
{
    //newHeader = "<div class='headerstyle'>" + headfoot.htmlHead + "</div>";
    newHeader = "<div class='headerstyle'>[img]'cardiologie.gif'></div>";
[/img]" +headfoot.htmlFoot + "[img]'bg-main.gif'></div>";
    newFooter[/img][img]'dzlogo.gif'></div[/img]";
    
    document.all("page" + pageNum).insertAdjacentHTML("afterBegin", newHeader); 
    document.all("page" + pageNum).insertAdjacentHTML("beforeEnd", newFooter);
}
</SCRIPT>
</HEAD>

<BODY ONLOAD="AddFirstPage()">

<IE:TEMPLATEPRINTER ID="printer"/>
<IE:HEADERFOOTER ID="headfoot"/>

<DIV ID="pagecontainer">
<!-- Dynamically created pages go here. -->
</DIV>

</BODY>
</HTML>

Met de functie AddHeaderAndFooterToPage() wordt de header en de footer bepaald (allebei een gifje). Heel leuk allemaal maar ik kan de output alleen maar zien met printtemplate.exe van microsoft. Heeft iemand enig idee hoe ik deze template kan gebruiken om daadwerkelijk een tekst er in te krijgen???

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

En vanaf nu is het geen /14 meer, maar /13 :)

moved

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • apa
  • Registratie: April 2001
  • Laatst online: 11-08 09:42

apa

Run Forest, ruuuuuuuuuunnnnn!!

Je kan enkel printen als je de TemplatePrinter behavior kan gebruiken. Dat kan niet vanuit IE zelf, daarvoor moet je een C++ proggie schrijven die een WebBrowser control bevat.

Je kan een print template wel gebruiken om alles op het scherm te toveren, dat is geen probleem. Ik zit nu met dezelfde miserie...

PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op maandag 22 april 2002 11:07 schreef apa het volgende:
Je kan enkel printen als je de TemplatePrinter behavior kan gebruiken. Dat kan niet vanuit IE zelf, daarvoor moet je een C++ proggie schrijven die een WebBrowser control bevat.

Je kan een print template wel gebruiken om alles op het scherm te toveren, dat is geen probleem. Ik zit nu met dezelfde miserie...
Hmmm, dat C++ proggie, moet dat op de webserver draaien of op elke client-computer waarvandaan geprint moet worden?
Weet iemand toevallig waar ik meer informatie zou kunnen vinden over hoe dat programma gemaakt moet worden, of een plek waar het programma gedownload kan worden ???

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Je kan een stylsheet gebruiken dat alleen wordt toegepast bij het printen van een pagina. Lees (bijvoorbeeld) dit eens:


http://www.edgeofmyseat.com/tutorials/tutorial3.asp
Pagina: 1