--- ECHO_content/ECHO_resource.py 2012/08/23 10:25:32 1.6.2.4 +++ ECHO_content/ECHO_resource.py 2012/08/29 07:53:31 1.6.2.5 @@ -1,5 +1,4 @@ #TODO: change metaDataHash, jetzt tag -> data(tags aus dem neuen Metadatamain) -#TODO: erstes OSAS_meta ueberall durch self.metaDataHAst #TODO: contentType aus den Metadaten import urlparse @@ -83,16 +82,16 @@ class ECHO_resource(CatalogAware,Folder, getSubCols = ECHO_helpers.getSubCols - def getMetaDataManager(self): - """hole eine Instanz von MetaDataFolder - TODO: sollte konfigurierbar sein. - zur Zeit wird enfach nur self.metadata falls vorhanden zurueckggegeben. - """ - - mf= getattr(self,"metadataFolder",None) - #logging.debug("MetadataManager:"+repr(mf)) - return mf - +# def getMetaDataManager(self): +# """hole eine Instanz von MetaDataFolder +# TODO: sollte konfigurierbar sein. +# zur Zeit wird enfach nur self.metadata falls vorhanden zurueckggegeben. +# """ +# +# mf= getattr(self,"metadataFolder",None) +# #logging.debug("MetadataManager:"+repr(mf)) +# return mf +# def index_meta(self,RESPONSE=None): """ gibt das im metalink gespeicher xml-file zurueck""" @@ -136,88 +135,7 @@ class ECHO_resource(CatalogAware,Folder, self.reindex_object() - security.declareProtected('View','createPDF') - def createPDF(self,RESPONSE=None,local=None,dpi=150): - """erzeuge pdf file""" - pages=1 - dpi=float(dpi) - imagePath=self.getImagePath().replace("/mpiwg/online","") - - - image="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn="+imagePath+"&dw=%i&dh=%i&pn=%i" - xmlInfo="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/dlInfo-xml.jsp?fn="+imagePath - - dom=xml.dom.minidom.parse(urllib.urlopen(xmlInfo)) - for parameter in dom.getElementsByTagName('parameter'): - if parameter.getAttribute('name')=="pt": - pages=int(parameter.getAttribute('value')) - break - - - tempdir="/tmp/archivesImageServer" - if not os.path.exists(tempdir): - os.mkdir(tempdir) - - tmpPath=tempfile.mkdtemp(dir=tempdir) - - - tmpZip=tempfile.mktemp(dir=tempdir) - - tmpFn=os.path.split(tmpZip)[1] - - - - - if RESPONSE: - RESPONSE.setHeader("Content-Type","text/html") - RESPONSE.write("

I am creating the pdf

") - txt="

1. step: getting the images( %i pages)

"%pages - RESPONSE.write(txt) - - c=canvas.Canvas(tmpZip) - for i in range(1,pages+1): - if RESPONSE: - RESPONSE.write(str("

Get Page: %i
\n"%i)) - faktor=dpi/72.0 - - fn=tmpPath+"/%i"%i - - width,height=A4 - #print image%(width*faktor,height*faktor,i) - url=urllib.urlopen(image%(width*faktor,height*faktor,i)).read() - fh=file(fn,"w") - fh.write(url) - fh.close() - - - - c.drawImage(fn,0,0,width=width,height=height) - c.showPage() - c.save() - if RESPONSE: - RESPONSE.write("

finished
\n") - - if RESPONSE: - len=os.stat(tmpZip)[6] - downloadUrl=self.absolute_url()+"/downloadPDF" - RESPONSE.write("""

Click here for download ( %i Byte)

\n"""%(tmpFn,len)) - RESPONSE.write("""

The file will be stored for a while, you can download it later, the URL is:

-

%s?fn=%s\n"""%(tmpFn,downloadUrl,tmpFn)) - RESPONSE.close() - - - def downloadPDF(self,fn): - """download prepared set""" - filename="/tmp/archivesImageServer/"+fn - namePDF=self.getId()+".pdf" - self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%namePDF) - self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") - len=os.stat(filename)[6] - self.REQUEST.RESPONSE.setHeader("Content-Length",len) - images=file(filename).read() - self.REQUEST.RESPONSE.write(images) - self.REQUEST.RESPONSE.close() - + def getRDF(self,urn=None): """rdf""" @@ -675,19 +593,19 @@ class ECHO_resource(CatalogAware,Folder, return [] - def getStorageManagerResourceURL(self): - """get the link to storage""" - urlbase=self.getStorageManagerURL(); - - #now get the path from the metadatalink - - path = self.correctPath(self.getMetaDataLink()) - if path is None: - return "" - else: - path=path.replace("index.meta","") - return urlbase+path - +# def getStorageManagerResourceURL(self): +# """get the link to storage""" +# urlbase=self.getStorageManagerURL(); +# +# #now get the path from the metadatalink +# +# path = self.correctPath(self.getMetaDataLink()) +# if path is None: +# return "" +# else: +# path=path.replace("index.meta","") +# return urlbase+path +# def correctPath(self,path): #take only the path of the url which starts with /permanent or /experimental @@ -1094,7 +1012,7 @@ class ECHO_resource(CatalogAware,Folder, # """Ausgabe der MD""" # return getattr(self,item) - def checkRDF(self,path): + def checkPDF(self,path): """check if pdf in the path""" try: for fileName in os.listdir(path): @@ -1108,7 +1026,7 @@ class ECHO_resource(CatalogAware,Folder, security.declareProtected('View','index_html') def index_html(self): """standard page""" - pdf=self.checkRDF(self.link) + pdf=self.checkPDF(self.link) if pdf: fh=file(pdf,'r').read() self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf') @@ -1150,7 +1068,7 @@ class ECHO_resource(CatalogAware,Folder, return sp[0][1]() - security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination + security.declarePublic('generate_label') def generate_label(self): """Erzeugt_standard_Label aus Template""" @@ -1158,8 +1076,7 @@ class ECHO_resource(CatalogAware,Folder, return self.label - security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination - + security.declarePublic('generate_title') def generate_title(self,RESPONSE=None): """Erzeugt_standard_Label aus Template""" self.title=self.generate_label();