| 1 |
ninoborges |
8 |
"""
|
| 2 |
|
|
SingleTiffToLFP
|
| 3 |
|
|
Created by Emanuel Borges
|
| 4 |
|
|
3.22.07
|
| 5 |
|
|
|
| 6 |
|
|
This program will take a dir of single page tiffs and create an LPF from the tiffs
|
| 7 |
|
|
found there. It will know the doc boundaries because the tiffs are <foo>_<pageno>.tif
|
| 8 |
|
|
The program will also create a .dat file from the boundaries too.
|
| 9 |
|
|
|
| 10 |
|
|
First it packs it into a sortable hash with a sortable list as it's value, then unpacks
|
| 11 |
|
|
this list into the two files.
|
| 12 |
|
|
|
| 13 |
|
|
<FileNameSansExt:[File1,File2,File3]
|
| 14 |
|
|
|
| 15 |
|
|
Currently it only does one dir, since the dict would get Garbage collected but the
|
| 16 |
|
|
dict function could be turned into a class.
|
| 17 |
|
|
"""
|
| 18 |
|
|
|
| 19 |
nino.borges |
441 |
import os, time, NinoGenTools
|
| 20 |
ninoborges |
8 |
|
| 21 |
|
|
def CreateDictionary(contentsOfDir):
|
| 22 |
|
|
mainDict = {}
|
| 23 |
|
|
for file in contentsOfDir:
|
| 24 |
|
|
name = os.path.splitext(file)[0]
|
| 25 |
|
|
name = name.split("_Page_")[0]
|
| 26 |
|
|
if name in mainDict.keys():
|
| 27 |
|
|
filesList = mainDict.get(name)
|
| 28 |
|
|
filesList.append(file)
|
| 29 |
|
|
mainDict[name] = filesList
|
| 30 |
|
|
else:
|
| 31 |
|
|
mainDict[name]=[file]
|
| 32 |
|
|
return mainDict
|
| 33 |
|
|
|
| 34 |
|
|
def AddLfpParent(file, outputOBJ,prefix, curNumb):
|
| 35 |
nino.borges |
441 |
outputOBJ.write("IM,%s,D,0,@%s;;%s;2\n"% (prefix+str(curNumb),time.strftime('%Y%m%d'),file))
|
| 36 |
ninoborges |
8 |
|
| 37 |
|
|
def AddLfpChild(file, outputOBJ,prefix, curNumb):
|
| 38 |
nino.borges |
441 |
outputOBJ.write("IM,%s,,0,@%s;;%s;2\n"% (prefix+str(curNumb),time.strftime('%Y%m%d'),file))
|
| 39 |
ninoborges |
8 |
|
| 40 |
|
|
def AddToDAT(beg,end, outputOBJ):
|
| 41 |
|
|
"""This only works if the file is named the bates..."""
|
| 42 |
|
|
outputOBJ.write(beg + "," + end + ","+(time.strftime('%Y%m%d')+"\n"))
|
| 43 |
|
|
|
| 44 |
|
|
def AddToFile(startDir, file, outputFile):
|
| 45 |
|
|
output = open(outputFile, "a")
|
| 46 |
|
|
output.write("IM,PP002561,D,1,@%s;;%s;2\n"% (time.strftime('%Y%m%d'),file))
|
| 47 |
|
|
|
| 48 |
nino.borges |
443 |
def Process(startDir,prefix,startNumb,counterBase,extension =".tif"):
|
| 49 |
ninoborges |
8 |
lfpFileOBJ = open(startDir + "\\new_load.lfp",'w')
|
| 50 |
|
|
datFileOBJ = open(startDir + "\\new_load.dat",'w')
|
| 51 |
|
|
dirList = []
|
| 52 |
nino.borges |
441 |
counterObject = NinoGenTools.Counter()
|
| 53 |
|
|
|
| 54 |
ninoborges |
8 |
for file in os.listdir(startDir):
|
| 55 |
nino.borges |
447 |
if os.path.splitext(file)[1].upper() == extension.upper():
|
| 56 |
ninoborges |
8 |
dirList.append(file)
|
| 57 |
nino.borges |
447 |
elif os.path.splitext(file)[1].upper() == extension.upper()+"F":
|
| 58 |
|
|
dirList.append(file)
|
| 59 |
ninoborges |
8 |
filesMatrix = CreateDictionary(dirList)
|
| 60 |
nino.borges |
441 |
counterObject.inc(startNumb)
|
| 61 |
ninoborges |
8 |
fileMatrixList = filesMatrix.keys()
|
| 62 |
|
|
fileMatrixList.sort()
|
| 63 |
|
|
for k in fileMatrixList:
|
| 64 |
|
|
values = filesMatrix[k]
|
| 65 |
nino.borges |
441 |
datFileOBJ.write(prefix + "%0*d"% (counterBase,counterObject.count))
|
| 66 |
|
|
AddLfpParent(values[0], lfpFileOBJ, prefix, "%0*d"% (counterBase,counterObject.count))
|
| 67 |
|
|
counterObject.inc(1)
|
| 68 |
ninoborges |
8 |
if len(values) > 1:
|
| 69 |
|
|
for value in values[1:]:
|
| 70 |
nino.borges |
441 |
AddLfpChild(value, lfpFileOBJ, prefix, "%0*d"% (counterBase,counterObject.count))
|
| 71 |
|
|
counterObject.inc(1)
|
| 72 |
nino.borges |
443 |
|
| 73 |
nino.borges |
441 |
datFileOBJ.write("|" + prefix + "%0*d"% (counterBase,counterObject.count - 1)+"|"+ time.strftime('%Y%m%d') +"|"+ k +"\n")
|
| 74 |
nino.borges |
443 |
|
| 75 |
|
|
|
| 76 |
|
|
if __name__ == '__main__':
|
| 77 |
|
|
#startDir = r"\\lisdisdss01\dis20\c_d\37771188\20100503"
|
| 78 |
|
|
startDir = r"C:\Test_dir"
|
| 79 |
|
|
extension = ".tif"
|
| 80 |
|
|
#extension = ".jpg"
|
| 81 |
|
|
prefix = 'tst-'
|
| 82 |
|
|
startNumb = 7438
|
| 83 |
|
|
counterBase = 8
|
| 84 |
|
|
Process(startDir,prefix,startNumb,counterBase,extension)
|