* Fixed image support

git-svn-id: trunk@11160 -
This commit is contained in:
michael 2008-06-01 15:38:29 +00:00
parent 6a993fc079
commit c9eba19930
4 changed files with 55 additions and 11 deletions

View File

@ -106,7 +106,8 @@ resourcestring
SHTMLUsageCharset = 'Set the HTML character set'; SHTMLUsageCharset = 'Set the HTML character set';
SHTMLHtmlSearch = 'Add search page with given name to the menu bar'; SHTMLHtmlSearch = 'Add search page with given name to the menu bar';
SHTMLIndexColcount = 'Use N columns in the identifier index pages'; SHTMLIndexColcount = 'Use N columns in the identifier index pages';
SHTMLImageUrl = 'Prefix image URLs with url';
// CHM usage // CHM usage
SCHMUsageTOC = 'Use [File] as the table of contents. Usually a .hhc file.'; SCHMUsageTOC = 'Use [File] as the table of contents. Usually a .hhc file.';
SCHMUsageIndex = 'Use [File] as the index. Usually a .hhk file.'; SCHMUsageIndex = 'Use [File] as the index. Usually a .hhk file.';

View File

@ -142,7 +142,7 @@ type
procedure DescrEndItalic; override; procedure DescrEndItalic; override;
procedure DescrBeginEmph; override; procedure DescrBeginEmph; override;
procedure DescrEndEmph; override; procedure DescrEndEmph; override;
procedure DescrWriteImageEl(const AFileName, ACaption : DOMString); override; procedure DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString); override;
procedure DescrWriteFileEl(const AText: DOMString); override; procedure DescrWriteFileEl(const AText: DOMString); override;
procedure DescrWriteKeywordEl(const AText: DOMString); override; procedure DescrWriteKeywordEl(const AText: DOMString); override;
procedure DescrWriteVarEl(const AText: DOMString); override; procedure DescrWriteVarEl(const AText: DOMString); override;
@ -962,10 +962,10 @@ begin
PopOutputNode; PopOutputNode;
end; end;
procedure THTMLWriter.DescrWriteImageEl(const AFileName, ACaption : DOMString); procedure THTMLWriter.DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString);
Var Var
Pel,Cel : TDOMNode; Pel,Cel,Lel : TDOMNode;
El :TDomElement; El :TDomElement;
D : String; D : String;
L : Integer; L : Integer;
@ -978,7 +978,10 @@ begin
begin begin
Cel:=CreateTable(CurOutputNode); Cel:=CreateTable(CurOutputNode);
Pel:=CreateTD(CreateTR(Cel)); Pel:=CreateTD(CreateTR(Cel));
AppendText(CreateTD(CreateTR(Cel)),ACaption); Cel:=CreateTD(CreateTR(Cel));
If (ALinkName<>'') then
Cel:=CreateAnchor(Cel,ALinkName);
AppendText(Cel,ACaption);
end; end;
// Determine URL for image. // Determine URL for image.
D:=BaseImageURL; D:=BaseImageURL;
@ -2279,7 +2282,8 @@ Var
I : Integer; I : Integer;
M : TPasModule; M : TPasModule;
E : TPasElement; E : TPasElement;
S : String;
begin begin
L:=TStringList.Create; L:=TStringList.Create;
try try
@ -2291,7 +2295,10 @@ begin
AddModuleIdentifiers(M,L); AddModuleIdentifiers(M,L);
end; end;
AppendMenuBar(IndexSubIndex); AppendMenuBar(IndexSubIndex);
AppendTitle(Format(SDocPackageIndex, [Copy(Package.Name, 2, 256)])); S:=Package.Name;
If Length(S)>0 then
Delete(S,1,1);
AppendTitle(Format(SDocPackageIndex, [S]));
CreateIndexPage(L); CreateIndexPage(L);
Finally Finally
L.Free; L.Free;
@ -3250,6 +3257,8 @@ begin
CharSet := Arg CharSet := Arg
else if Cmd = '--index-colcount' then else if Cmd = '--index-colcount' then
IndexColCount := StrToIntDef(Arg,IndexColCount) IndexColCount := StrToIntDef(Arg,IndexColCount)
else if Cmd = '--image-url' then
FBaseImageURL := Arg
else if Cmd = '--footer-date' then else if Cmd = '--footer-date' then
begin begin
FIDF:=True; FIDF:=True;
@ -3277,6 +3286,8 @@ begin
List.Add(SHTMLHtmlSearch); List.Add(SHTMLHtmlSearch);
List.Add('--index-colcount=N'); List.Add('--index-colcount=N');
List.Add(SHTMLIndexColcount); List.Add(SHTMLIndexColcount);
List.Add('--image-url=url');
List.Add(SHTMLImageUrl);
end; end;
// private methods // private methods

View File

@ -38,6 +38,7 @@ Type
TLaTeXWriter = class(TLinearWriter) TLaTeXWriter = class(TLinearWriter)
protected protected
FLink: String; FLink: String;
FImageDir: String;
FTableCount : Integer; FTableCount : Integer;
FInVerbatim : Boolean; FInVerbatim : Boolean;
Inlist, Inlist,
@ -85,6 +86,7 @@ Type
procedure DescrEndItalic; override; procedure DescrEndItalic; override;
procedure DescrBeginEmph; override; procedure DescrBeginEmph; override;
procedure DescrEndEmph; override; procedure DescrEndEmph; override;
procedure DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString); override;
procedure DescrWriteFileEl(const AText: DOMString); override; procedure DescrWriteFileEl(const AText: DOMString); override;
procedure DescrWriteKeywordEl(const AText: DOMString); override; procedure DescrWriteKeywordEl(const AText: DOMString); override;
procedure DescrWriteVarEl(const AText: DOMString); override; procedure DescrWriteVarEl(const AText: DOMString); override;
@ -125,6 +127,7 @@ Type
procedure DescrEndTableCell; override; procedure DescrEndTableCell; override;
// TFPDocWriter class methods // TFPDocWriter class methods
Function InterPretOption(Const Cmd,Arg : String) : boolean; override; Function InterPretOption(Const Cmd,Arg : String) : boolean; override;
Property ImageDir : String Read FImageDir Write FImageDir;
end; end;
@ -215,6 +218,29 @@ begin
Write('}'); Write('}');
end; end;
procedure TLaTeXWriter.DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString);
Var
FN : String;
L : Integer;
begin
Writeln('\begin{figure}[ht]%');
Writeln('\begin{center}');
If (ACaption<>ACaption) then
Writeln(Format('\caption{%s}',[EscapeText(ACaption)]));
If (ALinkName<>'') then
WriteLabel('fig:'+ALinkName);
FN:=ImageDir;
L:=Length(FN);
If (L>0) and (FN[l]<>'/') then
FN:=FN+'/';
FN:=FN+AFileName;
Writeln('\epsfig{file='+FN+'}');
Writeln('\end{center}');
Writeln('\end{figure}');
end;
procedure TLaTeXWriter.DescrWriteFileEl(const AText: DOMString); procedure TLaTeXWriter.DescrWriteFileEl(const AText: DOMString);
begin begin
Write('\file{'); Write('\file{');
@ -675,6 +701,8 @@ begin
LatexHighLight:=True LatexHighLight:=True
else if Cmd = '--latex-extension' then else if Cmd = '--latex-extension' then
TexExtension:=Arg TexExtension:=Arg
else if Cmd = '--image-dir' then
ImageDir:=Arg
else else
Result:=False; Result:=False;
end; end;

View File

@ -105,7 +105,7 @@ type
procedure DescrEndItalic; virtual; abstract; procedure DescrEndItalic; virtual; abstract;
procedure DescrBeginEmph; virtual; abstract; procedure DescrBeginEmph; virtual; abstract;
procedure DescrEndEmph; virtual; abstract; procedure DescrEndEmph; virtual; abstract;
procedure DescrWriteImageEl(const AFileName, ACaption : DOMString); virtual; abstract; procedure DescrWriteImageEl(const AFileName, ACaption,ALinkName : DOMString); virtual; abstract;
procedure DescrWriteFileEl(const AText: DOMString); virtual; abstract; procedure DescrWriteFileEl(const AText: DOMString); virtual; abstract;
procedure DescrWriteKeywordEl(const AText: DOMString); virtual; abstract; procedure DescrWriteKeywordEl(const AText: DOMString); virtual; abstract;
procedure DescrWriteVarEl(const AText: DOMString); virtual; abstract; procedure DescrWriteVarEl(const AText: DOMString); virtual; abstract;
@ -977,7 +977,10 @@ begin
Result := True; Result := True;
end else if Node.NodeName = 'img' then end else if Node.NodeName = 'img' then
begin begin
begin
ConvertImage(Node as TDomElement); ConvertImage(Node as TDomElement);
Result:=True;
end;
end else end else
Result := False; Result := False;
end; end;
@ -985,13 +988,14 @@ end;
Procedure TFPDocWriter.ConvertImage(El : TDomElement); Procedure TFPDocWriter.ConvertImage(El : TDomElement);
Var Var
FN,Cap : DOMString; FN,Cap,LinkName : DOMString;
begin begin
FN:=El['file']; FN:=El['file'];
Cap:=El['caption']; Cap:=El['caption'];
ChangeFileExt(FN,ImageExtension); LinkName:=El['name'];
DescrWriteImageEl(FN,Cap); FN:=ChangeFileExt(FN,ImageExtension);
DescrWriteImageEl(FN,Cap,LinkName);
end; end;