summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/office.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/lib/office.py b/lib/office.py
index 370aa3f..5d05e76 100644
--- a/lib/office.py
+++ b/lib/office.py
@@ -131,11 +131,11 @@ class PdfStripper(parser.GenericParser):
131 Check if the file is clean from harmful metadatas 131 Check if the file is clean from harmful metadatas
132 ''' 132 '''
133 for key in self.meta_list: 133 for key in self.meta_list:
134 if key != 'creation-date' and key != 'mod-date': 134 if key == 'creation-date' and key == 'mod-date':
135 if self.document.get_property(key) is not None: 135 if self.document.get_property(key) != -1:
136 return False 136 return False
137 else: 137 else:
138 if self.document.get_property(key) != -1: 138 if self.document.get_property(key) is not None:
139 return False 139 return False
140 return True 140 return True
141 141
@@ -149,20 +149,21 @@ class PdfStripper(parser.GenericParser):
149 page = self.document.get_page(0) 149 page = self.document.get_page(0)
150 page_width, page_height = page.get_size() 150 page_width, page_height = page.get_size()
151 surface = cairo.PDFSurface(self.output, page_width, page_height) 151 surface = cairo.PDFSurface(self.output, page_width, page_height)
152 context = cairo.Context(surface) 152 context = cairo.Context(surface) # context draws on the surface
153 for pagenum in xrange(self.document.get_n_pages()): 153 for pagenum in xrange(self.document.get_n_pages()):
154 page = self.document.get_page(pagenum) 154 page = self.document.get_page(pagenum)
155 context.translate(0, 0) 155 context.translate(0, 0)
156 page.render(context) 156 page.render(context) # render the page on context
157 context.show_page() 157 context.show_page() # draw context on surface
158 surface.finish() 158 surface.finish()
159
159 #For now, poppler cannot write meta, so we must use pdfrw 160 #For now, poppler cannot write meta, so we must use pdfrw
160 trailer = pdfrw.PdfReader(self.output) 161 trailer = pdfrw.PdfReader(self.output)
161 trailer.Info.Producer = '' 162 trailer.Info.Producer = trailer.Info.Creator = None
162 trailer.Info.Creator = ''
163 writer = pdfrw.PdfWriter() 163 writer = pdfrw.PdfWriter()
164 writer.trailer = trailer 164 writer.trailer = trailer
165 writer.write(self.output) 165 writer.write(self.output)
166 self.do_backup()
166 167
167 def get_meta(self): 168 def get_meta(self):
168 ''' 169 '''
@@ -170,6 +171,12 @@ class PdfStripper(parser.GenericParser):
170 ''' 171 '''
171 metadata={} 172 metadata={}
172 for key in self.meta_list: 173 for key in self.meta_list:
173 if self.document.get_property(key) is not None: 174 if key == 'creation-date' or key == 'mod-date':
174 metadata[key] = self.document.get_property(key) 175 #creation and modification are set to -1
176 if self.document.get_property(key) != -1:
177 metadata[key] = self.document.get_property(key)
178 else:
179 if self.document.get_property(key) is not None and \
180 self.document.get_property(key) != '':
181 metadata[key] = self.document.get_property(key)
175 return metadata 182 return metadata