#!/usr/bin/perl ## Prepare an XML-file for the preparation of a figure-database with TeX ## XML-file header information: $Librarylanguage = "en"; $Organization = "Willi"; $Project = "Restauratie"; $Product = "Restauratie-cursus "; $Comment = "Figure database"; $CopyRight = "WE" ; ## Variables $Filename = ""; $FileextensionA = "pdf"; $FileextensionB = "png"; #~ $FileextensionC = "1"; $Filedate = ""; $Filetimestamp ; $Filesize= ""; $Globstring = "*." . $FileextensionA; $Outfile = ">Figure-lib.xml"; ## Date ($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $IsDST) = localtime(time); $RealMonth = $Month +1 ; $RealYear = $Year + 1900 ; printf ('%02d.%02d.%04d', $DayOfMonth,$RealMonth,$RealYear); print "\n"; ## Open the XML-file for writing: open(OUTFILE, $Outfile); ## Print XML-file header: Header(); ## Collect Figure files into an list: @Files = glob($Globstring); $Globstring = "*." . $FileextensionB; @MoreFiles = glob($Globstring); push(@Files, @MoreFiles); #~ $Globstring = "*." . $FileextensionC; #~ @MoreFiles = glob($Globstring); #~ push(@Files, @MoreFiles); ## Work on each filename: foreach $Filename (@Files) { #~ $exifinfo = `identify -verbose -format "%[EXIF:*]" $Filename`; #~ chomp($exifinfo); #~ if(length($exifinfo) < 2){ #~ $Filetimestamp = (-C $Filename) ; #~ $Filedatestamp = time - $Filetimestamp ; #~ ($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $WeekDay, $DayOfYear, $IsDST) = localtime($Filedatestamp); #~ $RealMonth = $Month +1 ; #~ $RealYear = $Year + 1900 ; #~ $FileDate = $DayOfMonth . "." . $RealMonth . "." . $RealYear ; #~ } #~ else { #~ @exiflines = split(/\n/,$exifinfo); #~ foreach $exifline (@exiflines){ #~ ($exifHeader,$exifData) = split(/=/,$exifline,2); #~ if($exifHeader eq "DateTimeOriginal"){ #~ $FileDate = substr($exifData,8,2) . "." . substr($exifData,5,2) . "." . substr($exifData,0,4); #~ } #~ } #~ } $Filesize = (-s $Filename) ; if ($Filesize > 1024){ $Filesize = int($Filesize / 1024) . "k"; } ## Determine first part of filename -> label in figure library ($Label,$Suffix) = split (/\./,$Filename) ; ## Print the XMLblock for the actual figurefile: Printfigureblock(); } print OUTFILE ""; close(OUTFILE); ## End of main programme. sub Header{ print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE "\n" ; print OUTFILE " \n" ; print OUTFILE " $Organization\n" ; print OUTFILE " $Project\n" ; print OUTFILE " $Product\n" ; print OUTFILE " $Comment\n" ; print OUTFILE " \n" ; print OUTFILE "\n" ; } sub Printfigureblock{ print OUTFILE "
\n" ; print OUTFILE " " . lc($Filename) . "\n" ; print OUTFILE " \n" ; print OUTFILE " $CopyRight\n" ; print OUTFILE " $FileDate " . $Filesize . "B\n" ; print OUTFILE "
\n\n" ; print "Finished figureblock: $Filename\n"; }