diff --git a/.gitattributes b/.gitattributes index 7b670570af..0d8ab331fb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1237,6 +1237,7 @@ components/fpvectorial/pdfvrsintatico.pas svneol=native#text/plain components/fpvectorial/rawvectorialreadwrite.pas svneol=native#text/plain components/fpvectorial/svgvectorialreader.pas svneol=native#text/plain components/fpvectorial/svgvectorialwriter.pas svneol=native#text/plain +components/fpvectorial/svgzvectorialreader.pas svneol=native#text/pascal components/fpvectorial/tools/laszip/laszip.lpi svneol=native#text/plain components/fpvectorial/tools/laszip/laszip.pas svneol=native#text/plain components/fpweb/README.txt svneol=native#text/plain diff --git a/components/fpvectorial/fpvectorial.pas b/components/fpvectorial/fpvectorial.pas index ce55af8ab2..3e5bd00545 100644 --- a/components/fpvectorial/fpvectorial.pas +++ b/components/fpvectorial/fpvectorial.pas @@ -40,7 +40,7 @@ uses type TvVectorialFormat = ( { Multi-purpose document formats } - vfPDF, vfSVG, vfCorelDrawCDR, vfWindowsMetafileWMF, vfODG, + vfPDF, vfSVG, vfSVGZ, vfCorelDrawCDR, vfWindowsMetafileWMF, vfODG, { CAD formats } vfDXF, { Geospatial formats } @@ -71,6 +71,7 @@ const STR_PDF_EXTENSION = '.pdf'; STR_POSTSCRIPT_EXTENSION = '.ps'; STR_SVG_EXTENSION = '.svg'; + STR_SVGZ_EXTENSION = '.svgz'; STR_CORELDRAW_EXTENSION = '.cdr'; STR_WINMETAFILE_EXTENSION = '.wmf'; STR_AUTOCAD_EXCHANGE_EXTENSION = '.dxf'; @@ -4068,6 +4069,7 @@ begin if AnsiCompareText(lExt, STR_PDF_EXTENSION) = 0 then Result := vfPDF else if AnsiCompareText(lExt, STR_POSTSCRIPT_EXTENSION) = 0 then Result := vfPostScript else if AnsiCompareText(lExt, STR_SVG_EXTENSION) = 0 then Result := vfSVG + else if AnsiCompareText(lExt, STR_SVGZ_EXTENSION) = 0 then Result := vfSVGZ else if AnsiCompareText(lExt, STR_CORELDRAW_EXTENSION) = 0 then Result := vfCorelDrawCDR else if AnsiCompareText(lExt, STR_WINMETAFILE_EXTENSION) = 0 then Result := vfWindowsMetafileWMF else if AnsiCompareText(lExt, STR_AUTOCAD_EXCHANGE_EXTENSION) = 0 then Result := vfDXF diff --git a/components/fpvectorial/fpvectorialpkg.lpk b/components/fpvectorial/fpvectorialpkg.lpk index f9fb66a58c..00b911a256 100644 --- a/components/fpvectorial/fpvectorialpkg.lpk +++ b/components/fpvectorial/fpvectorialpkg.lpk @@ -12,7 +12,7 @@ - + @@ -81,6 +81,10 @@ + + + + diff --git a/components/fpvectorial/fpvectorialpkg.pas b/components/fpvectorial/fpvectorialpkg.pas index 64cdba3faf..47a2e9f5e7 100644 --- a/components/fpvectorial/fpvectorialpkg.pas +++ b/components/fpvectorial/fpvectorialpkg.pas @@ -12,7 +12,7 @@ uses dxfvectorialreader, epsvectorialreader, lasvectorialreader, lazvectorialreader, mathmlvectorialreader, odgvectorialreader, rawvectorialreadwrite, svgvectorialreader, svgvectorialwriter, - LazarusPackageIntf; + svgzvectorialreader, LazarusPackageIntf; implementation diff --git a/components/fpvectorial/svgzvectorialreader.pas b/components/fpvectorial/svgzvectorialreader.pas new file mode 100644 index 0000000000..a189968b2b --- /dev/null +++ b/components/fpvectorial/svgzvectorialreader.pas @@ -0,0 +1,50 @@ +unit svgzvectorialreader; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, + zstream, + svgvectorialreader, fpvectorial, fpvutils, lazutf8; + +type + { TvSVGZVectorialReader } + + TvSVGZVectorialReader = class(TvSVGVectorialReader) + public + { General reading methods } + procedure ReadFromFile(AFileName: string; AData: TvVectorialDocument); virtual; + procedure ReadFromStream(AStream: TStream; AData: TvVectorialDocument); override; + end; + +implementation + +{ TvSVGZVectorialReader } + +procedure TvSVGZVectorialReader.ReadFromFile(AFileName: string; + AData: TvVectorialDocument); +var + FileStream: TGZFileStream; +begin + FileStream := TGZFileStream.Create(AFileName, gzopenread); + try + ReadFromStream(FileStream, AData); + finally + FileStream.Free; + end; +end; + +procedure TvSVGZVectorialReader.ReadFromStream(AStream: TStream; + AData: TvVectorialDocument); +begin + inherited ReadFromStream(AStream, AData); +end; + +initialization + + RegisterVectorialReader(TvSVGZVectorialReader, vfSVGZ); + +end. +