diff options
Diffstat (limited to 'src/pdf.py')
| -rw-r--r-- | src/pdf.py | 9 |
1 files changed, 7 insertions, 2 deletions
| @@ -11,7 +11,7 @@ import io | |||
| 11 | import cairo | 11 | import cairo |
| 12 | import gi | 12 | import gi |
| 13 | gi.require_version('Poppler', '0.18') | 13 | gi.require_version('Poppler', '0.18') |
| 14 | from gi.repository import Poppler | 14 | from gi.repository import Poppler, GLib |
| 15 | 15 | ||
| 16 | from . import abstract | 16 | from . import abstract |
| 17 | 17 | ||
| @@ -28,6 +28,10 @@ class PDFParser(abstract.AbstractParser): | |||
| 28 | super().__init__(filename) | 28 | super().__init__(filename) |
| 29 | self.uri = 'file://' + os.path.abspath(self.filename) | 29 | self.uri = 'file://' + os.path.abspath(self.filename) |
| 30 | self.__scale = 2 # how much precision do we want for the render | 30 | self.__scale = 2 # how much precision do we want for the render |
| 31 | try: # Check now that the file is valid, to avoid surprises later | ||
| 32 | Poppler.Document.new_from_file(self.uri, None) | ||
| 33 | except GLib.GError: # Invalid PDF | ||
| 34 | raise ValueError | ||
| 31 | 35 | ||
| 32 | def remove_all_lightweight(self): | 36 | def remove_all_lightweight(self): |
| 33 | """ | 37 | """ |
| @@ -116,8 +120,9 @@ class PDFParser(abstract.AbstractParser): | |||
| 116 | def get_meta(self): | 120 | def get_meta(self): |
| 117 | """ Return a dict with all the meta of the file | 121 | """ Return a dict with all the meta of the file |
| 118 | """ | 122 | """ |
| 119 | document = Poppler.Document.new_from_file(self.uri, None) | ||
| 120 | metadata = {} | 123 | metadata = {} |
| 124 | document = Poppler.Document.new_from_file(self.uri, None) | ||
| 125 | |||
| 121 | for key in self.meta_list: | 126 | for key in self.meta_list: |
| 122 | if document.get_property(key): | 127 | if document.get_property(key): |
| 123 | metadata[key] = document.get_property(key) | 128 | metadata[key] = document.get_property(key) |
