diff options
Diffstat (limited to 'extras/contributed/report_tool/reportengine/u_pdf.pas')
-rw-r--r-- | extras/contributed/report_tool/reportengine/u_pdf.pas | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/extras/contributed/report_tool/reportengine/u_pdf.pas b/extras/contributed/report_tool/reportengine/u_pdf.pas index ebb83603..facfd399 100644 --- a/extras/contributed/report_tool/reportengine/u_pdf.pas +++ b/extras/contributed/report_tool/reportengine/u_pdf.pas @@ -251,7 +251,7 @@ type procedure CreatePreferences; function CreatePages(Parent: Integer): Integer; function CreatePage(Parent,Haut,Larg: Integer): Integer; - function CreateOutlines(Parent: Integer): Integer; + function CreateOutlines: Integer; function CreateOutline(Parent,SectNo,PageNo: Integer; SectTitre: string): Integer; procedure CreateFont(NomFonte: string; NumFonte: Integer); function CreateContents: Integer; @@ -352,16 +352,6 @@ then Result:= FontName+Chaine1; end; -function ColorToString(Couleur: Integer): string; -var - Red,Green,Blue: Integer; -begin -Red:= Couleur div 65535; -Couleur:= Couleur mod 65535; -Green:= Couleur div 255; -Blue:= Couleur mod 255; -end; - // object methods constructor TPdfObjet.Create; @@ -500,7 +490,13 @@ FArray:= TList.Create; end; destructor TPdfArray.Destroy; +var + Cpt: Integer; begin +if FArray.Count> 0 +then + for Cpt:= 0 to Pred(FArray.Count) do + TPdfObjet(FArray[Cpt]).Free; FArray.Free; inherited; end; @@ -514,7 +510,7 @@ for Cpt:= 0 to Pred(FStream.Count) do if TPdfObjet(FStream[Cpt]) is TPdfFonte then TPdfFonte(FStream[Cpt]).WriteFonte(AFlux); - if TPdfColor(FStream[Cpt]) is TPdfColor + if TPdfObjet(FStream[Cpt]) is TPdfColor then TPdfColor(FStream[Cpt]).WriteColor(AFlux); if TPdfObjet(FStream[Cpt]) is TPdfText @@ -547,7 +543,13 @@ FStream:= TList.Create; end; destructor TPdfStream.Destroy; +var + Cpt: Integer; begin +if FStream.Count> 0 +then + for Cpt:= 0 to Pred(FStream.Count) do + TPdfObjet(FStream[Cpt]).Free; FStream.Free; inherited; end; @@ -876,9 +878,7 @@ end; procedure TPdfDocument.WriteObjet(const AObjet: Integer; const AFlux: TStream); var - Dictionaire: TPdfDictionary; Long: TPdfInteger; - Fin: Integer; Flux: TMemoryStream; begin WriteChaine(IntToStr(AObjet)+' 0 obj'+CRLF,AFlux); @@ -1095,10 +1095,9 @@ TPdfArray(TPdfDicElement(Dictionaire.FElement[Dictionaire.ElementParCle('ProcSet Result:= Pred(FXRefObjets.Count); end; -function TPdfDocument.CreateOutlines(Parent: Integer): Integer; +function TPdfDocument.CreateOutlines: Integer; var Outlines: TPdfXRef; - XRefObjets: TPdfReference; Nom: TPdfName; Count: TPdfInteger; begin @@ -1308,12 +1307,11 @@ end; constructor TPdfDocument.CreateDocument; var - Cpt,CptSect,CptPage,CptFont,NumFont,TreeRoot,ParentPage,PageNum,NumPage: Integer; + Cpt,CptSect,CptPage,NumFont,TreeRoot,ParentPage,PageNum,NumPage: Integer; OutlineRoot,ParentOutline,PageOutline,NextOutline,NextSect,NewPage: Integer; Dictionaire: TPdfDictionary; XRefObjets,PrevOutline,PrevSect: TPdfReference; Nom: TPdfName; - Trouve: Boolean; FontName: string; begin inherited Create; @@ -1330,7 +1328,7 @@ then if Outline then begin - OutlineRoot:= CreateOutlines(ParentOutline); + OutlineRoot:= CreateOutlines; // add outline reference to catalog dictionary XRefObjets:= TPdfReference.CreateReference(Pred(FXRefObjets.Count)); TPdfDictionary(TPdfXRef(FXRefObjets[Catalogue]).FObjet).AddElement('Outlines',XRefObjets); @@ -1441,7 +1439,6 @@ then NumFont:= 0; for Cpt:= 0 to Pred(Fontes.Count) do begin - Trouve:= False; FontName:= ExtractBaseFontName(T_Fonte(Fontes[Cpt]).GetFonte.FontDesc); CreateFont(FontName,NumFont); Inc(NumFont); |