Loading README.md +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ APIs et interfaces de stockage de médias. - PostgreSQL >= 11 - exiftool - imagemagick (convert) - pdftoppm - pdftoppm, pdftotext (poppler-utils) - vips - tesseract Loading resources/models.py +25 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,31 @@ class File(Resource): (_, created,) = MetadataResourceValue.objects.get_or_create( metadata=meta, resource=self, value=content.strip() ) if self.has_extension("pdf") or self.has_extension("ai"): # extract PDF text layer if available pdftotext_return_code = call( ["pdftotext", self.local_path(), self.local_path() + ".pdftotext.txt"] ) if pdftotext_return_code == 0: with open(self.local_path() + ".pdftotext.txt", "r") as text_layer: content = text_layer.read() public_owner = User.objects.get(username="public_user") metas_set, created = MetadataSet.objects.get_or_create( title="OCR", owner=public_owner ) meta, created = Metadata.objects.get_or_create( owner=public_owner, title="pdftotext output", set=metas_set ) (_, created,) = MetadataResourceValue.objects.get_or_create( metadata=meta, resource=self, value=content.strip() ) def has_extension(self, extension: str) -> bool: extension = extension.lower() for ext in self.file_type.extensions.all(): if ext.label == extension: return True return False def save(self, *args, **kwargs): self.ptr_owner = self.owner Loading Loading
README.md +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ APIs et interfaces de stockage de médias. - PostgreSQL >= 11 - exiftool - imagemagick (convert) - pdftoppm - pdftoppm, pdftotext (poppler-utils) - vips - tesseract Loading
resources/models.py +25 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,31 @@ class File(Resource): (_, created,) = MetadataResourceValue.objects.get_or_create( metadata=meta, resource=self, value=content.strip() ) if self.has_extension("pdf") or self.has_extension("ai"): # extract PDF text layer if available pdftotext_return_code = call( ["pdftotext", self.local_path(), self.local_path() + ".pdftotext.txt"] ) if pdftotext_return_code == 0: with open(self.local_path() + ".pdftotext.txt", "r") as text_layer: content = text_layer.read() public_owner = User.objects.get(username="public_user") metas_set, created = MetadataSet.objects.get_or_create( title="OCR", owner=public_owner ) meta, created = Metadata.objects.get_or_create( owner=public_owner, title="pdftotext output", set=metas_set ) (_, created,) = MetadataResourceValue.objects.get_or_create( metadata=meta, resource=self, value=content.strip() ) def has_extension(self, extension: str) -> bool: extension = extension.lower() for ext in self.file_type.extensions.all(): if ext.label == extension: return True return False def save(self, *args, **kwargs): self.ptr_owner = self.owner Loading