// script dessinant un fond de page pdf
// déclaration variables
var Num,x,i,l,y,d:integer;
Titre,s:string;
LBox,HBox,HMarge,XBox,YBox:integer;
XText,YText,Ltext,HText,XTitre,YTitre,XLigne,YLigne:integer;
CBox,TExt,CNum,CTitre:string;
Font:string;
Ligne:string;
begin

// nom de la fonte
Font := GetParam('Font','courier');
// taille du stylo de tracé 1
PdfPenSize(1);
// type de ligne - sans - pleine - pointillée ou tiret
Ligne := GetParam('Ligne','pleine');
// hauteur boite numérotation
HBox := StrToInt(GetParam('HauteurBoxNum','26'));
// largeur boite numérotation
LBox := StrToInt(GetParam('LargeurBoxNum','50'));
// couleur boite numérotation
CBox := ColorToString(StringToColor(GetParam('ColorBox','clblack')));
// couleur de la numérotation
CNum := ColorToString(StringToColor(GetParam('ColorNum','clwhite')));
// couleur du texte
CTitre := ColorToString(StringToColor(GetParam('ColorTitre','clblack')));
// hauteur de la marge haute
HMarge := PdfMargeTop;
// on centre la boite
YBox := (HMarge-HBox) div 2;
// numéro de la page
Num := PdfPageNum;
// on passe en gras 10
PdfFont(Font,'g','10');

// titre de la page
Titre : = PdfTitrePage;

// numero de la page
// si Table des matières on l'affiche en chiffre romain, mais avant on le ramène à 1
if titre='Table des matières' then text := NumtoRomain(1+PdfPageNumOf(Titre)-Num) else
Text := IntToStr(Num);
HText := PdfTextHeight(Text);
LText := PdfTextWidth(Text);


// tracés supérieur

// réagir différement si pair ou impair
if Num mod 2 = 0 then
begin
// titre du projet si pas sommaire, glossaire, index
if (Titre<>'Table des matières') and (titre<>'Index') and (titre<>'Glossaire') then
Titre := 'Aide help&web';

XBox := 10;
XTitre := XBox+LBox+10;
YTitre := YBox+(HBox div 2)-5;
end else begin
XBox := PdfPageWidth-10-LBox;
XTitre := PdfPageWidth-40-PdfTextWidth(Titre)-LBox;
YTitre := YBox+(HBox div 2)-5;
end;

PdfFillRect(XBox,YBox,LBox,HBox,CBox,CBOx);

// on trace la ligne horizontale à mi-boite
XLigne := 10;
YLigne := YBox+(HBox div 2);
if ligne='pleine' then
PdfLine(XLigne,YLigne,PdfPageWidth-10,YLigne) else
if ligne='pointillée' then
PdfDashLine(XLigne,YLigne,PdfPageWidth-10,YLigne,2,2);


// on écrit le numéro de la page
PdfFontColor(CNum);
XText := (LBox - LText) div 2;
YText := (YBox+(HBox div 2)) + (HText div 4);
PdfText(XBox+XText,YText,text);

// texte
PdfFontColor(CTitre);
PdfText(XTitre,YTitre,Titre);

// tracés inférieur

// on trace la ligne horizontale
//PdfLine(10,pdfPageHeight-pdfBottomHeader+8,PdfPageWidth-10,pdfPageHeight-pdfBottomHeader+8);
XLigne := 10;
YLigne := pdfPageHeight-pdfBottomHeader+8;
if ligne='pleine' then
PdfLine(XLigne,YLigne,PdfPageWidth-10,YLigne) else
if ligne='pointillée' then
PdfDashLine(XLigne,YLigne,PdfPageWidth-10,YLigne,2,2);

// réagir différement si pair ou impair
if Num mod 2 = 0 then
begin
pdfText(10,pdfPageHeight-pdfBottomHeader+ 20,text);
pdfText(pdfPagewidth - PDFTextWidth(Titre)-30,pdfPageHeight-pdfBottomHeader+ 20,Titre);
end else begin
pdfText(pdfPagewidth - LText -10,pdfPageHeight-pdfBottomHeader+ 20,Text);
pdfText(10,pdfPageHeight-pdfBottomHeader+ 20,Titre);
end;

end;
end.

Sommaire