Herbert's patch supporting more graphics formats.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3621 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2002-03-01 09:58:15 +00:00
parent 865b605078
commit b3e376fefc
4 changed files with 86 additions and 15 deletions

View File

@ -6,6 +6,10 @@
* ui/default.ui: change Layout>LaTeX Preamble to Layout>Preamble.
2002-02-23 Herbert Voss <voss@perce.de>
* configure.m4: added converter stuff for different formats
2002-02-13 José Matos <jamatos@fep.up.pt>
* examples/linuxdoc_manpage.lyx: added

View File

@ -355,7 +355,7 @@ esac
#### Search for image conversion ####
SEARCH_PROG([for an Image -> EPS converter], TOEPS, convert pnmtops)
case $TOEPS in
convert) gif_to_eps="convert GIF:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o";;
convert) bmp_to_eps="convert BMP:\$\$i EPS:\$\$o" fits_to_eps="convert FITS:\$\$i EPS:\$\$o" gif_to_eps="convert GIF:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o" pbm_to_eps="convert PBM:\$\$i EPS:\$\$o" pgm_to_eps="convert PGM:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" ppm_to_eps="convert PPM:\$\$i EPS:\$\$o" sgi_to_eps="convert SGI:\$\$i EPS:\$\$o" xwd_to_eps="convert XWD:\$\$i EPS:\$\$o" ;;
pnmtops) gif_to_eps="giftopnm \$\$i | pnmtops > \$\$o" png_to_eps="pngtopnm \$\$i | pnmtops >\$\$o" jpg_to_eps="jpegtopnm \$\$i | pnmtops >\$\$o";;
esac
@ -452,11 +452,14 @@ cat >$outfile <<EOF
\\Format text txt ASCII A
\\Format textparagraph txt ASCII(paragraphs) ""
\\Format docbook sgml DocBook B
\\Format bmp bmp BMP ""
\\Format dvi dvi DVI D
\\Format eps eps EPS ""
\\Format epsi epsi EPSI ""
\\Format epsi epsi EPSI ""
\\Format fax "" Fax ""
\\Format fits fits FITS ""
\\Format gif gif GIF ""
\\Format grace agr GRACE ""
\\Format html html HTML H
\\Format jpg jpg JPEG ""
\\Format latex tex LaTeX L
@ -466,10 +469,17 @@ cat >$outfile <<EOF
\\Format pdf pdf PDF P
\\Format pdf2 pdf "PDF (pdflatex)" F
\\Format pdf3 pdf "PDF (dvipdfm)" m
\\Format pbm pbm PBM ""
\\Format pgm pgm PGM ""
\\Format png png PNG ""
\\Format ppm ppm PPM ""
\\Format ps ps Postscript t
\\Format program "" Program ""
\\Format sgi sgi SGI ""
\\Format tgif tgif TGIF ""
\\Format tiff tif TIFF ""
\\Format xpm xpm XPM ""
\\Format xwd xwd XWD ""
\\Format word doc Word W
\\converter latex dvi "$latex_to_dvi" "latex"
@ -492,9 +502,22 @@ cat >$outfile <<EOF
\\converter html latex "$html_to_latex_command" ""
\\converter word latex "$word_to_latex_command" ""
\\converter agr eps "xmgrace -hardcopy -hdevice EPS \$\$i" ""
\\converter bmp eps "$bmp_to_eps" ""
\\converter fits eps "$fits_to_eps" ""
\\converter gif eps "$gif_to_eps" ""
\\converter png eps "$png_to_eps" ""
\\converter jpg eps "$jpg_to_eps" ""
\\converter pbm eps "$pbm_to_eps" ""
\\converter pgm eps "$pgm_to_eps" ""
\\converter png eps "$png_to_eps" ""
\\converter ppm eps "$ppm_to_eps" ""
\\converter sgi eps "$sgi_to_eps" ""
\\converter tgif eps "tgif -print -eps \$\$i" ""
\\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
\\converter xwd eps "$xwd_to_eps" ""
\\converter tgif gif "tgif -print -gif \$\$i" ""
\\converter tgif pdf "tgif -print -pdf \$\$i" ""
\\converter gif png "$gif_to_png" ""
\\converter eps png "$eps_to_png" ""

View File

@ -21,6 +21,10 @@
* os2_errortable.h:
* nt_defines.h: moved from src/
2002-02-23 Herbert Voss <voss@perce.de>
* filetools.C: added more graphic formats
2002-02-18 Herbert Voss <voss@perce.de>
* filetools.C: (getExtFromContents) return the fileextension

View File

@ -966,16 +966,24 @@ string const GetExtension(string const & name)
// the different filetypes and what they contain in one of the first lines
// (dots are any characters). (Herbert 20020131)
// AGR Grace...
// BMP BM...
// EPS %!PS-Adobe-3.0 EPSF...
// TGIF %TGIF...
// FITS ...BITPIX...
// GIF GIF...
// GRACE Grace ...
// JPG JFIF
// PDF %PDF-...
// PNG .PNG...
// PBM P1... or P4 (B/W)
// PGM P2... or P5 (Grayscale)
// PPM P3... or P6 (color)
// PS %!PS-Adobe-2.0 or 1.0, no "EPSF"!
// SGI \001\332... (decimal 474)
// TGIF %TGIF...
// TIFF II... or MM...
// XBM ... static char ...
// XPM /* XPM */
// XWD \000\000\000\151 (0x00006900)
//
// GZIP \037\213\010\010... http://www.ietf.org/rfc/rfc1952.txt
// ZIP PK... http://www.halyava.ru/document/ind_arch.htm
@ -996,33 +1004,63 @@ string const getExtFromContents(string const & filename) {
int const max_count = 50; // Maximum strings to read
int count = 0; // Counter of attempts.
string str;
bool zipChecked = false;
bool firstLine = true;
for (; count < max_count; ++count) {
if (ifs.eof()) {
lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)"
" End of file reached and it wasn't found to be a known Type!" << endl;
lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)\n"
"\tEnd of file reached and it wasn't found a known Type!" << endl;
break;
}
ifs >> str;
if (!zipChecked) {
if (firstLine) {
// at first we check for a zipped file, because this information
// is saved in the first bytes of the file!
// also some graphic formats which save the information
// in the first line, too.
if (str.substr(0,4) == gzipStamp)
return "gzip";
else if (str.substr(0,2) == zipStamp)
string const stamp = str.substr(0,2);
if (stamp == zipStamp)
return "zip";
else if (str.substr(0,2) == compressStamp)
else if (stamp == compressStamp)
return "compress";
zipChecked = true;
// the graphics part
else if (stamp == "BM")
return "bmp";
else if (str.at(0) == 'P') { // PBM family
switch (str.at(1)) {
case '1':
case '4':
return "pbm";
break;
case '2':
case '5':
return "pgm";
break;
case '3':
case '6':
return "ppm";
break;
default: ; // do nothing
}
}
if (stamp == "\001\332")
return "sgi";
else if ((stamp == "II") || (stamp == "MM"))
return "tiff";
else if (str.substr(0,3) == "GIF")
return "gif";
else if ((str.at(3) == 'i') && (str.at(0) == '\000') &&
(str.at(1) == '\000') && (str.at(2) == '\000'))
return "xwd";
firstLine = false;
}
if (contains(str,"EPSF")) // dummy, if we have wrong file
return "eps"; // description like "%!PS-Adobe-2.0EPSF"
else if (contains(str,"TGIF"))
return "tgif";
else if (contains(str,"GIF"))
return "gif";
else if (contains(str,"Grace"))
return "grace";
return "agr";
else if (contains(str,"JFIF"))
return "jpg";
else if (contains(str,"%PDF"))
@ -1039,6 +1077,8 @@ string const getExtFromContents(string const & filename) {
return "xbm";
else if (contains(str,"XPM"))
return "xpm";
else if (contains(str,"BITPIX"))
return "fits";
}
lyxerr[Debug::GRAPHICS] << "filetools(getExtFromContents)\n"
"\tCouldn't find a known Type!"