diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/office.py | 27 |
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 |
