Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Валидация испорченных PDF #64

Open
grigoriev-semyon opened this issue Sep 30, 2023 · 0 comments
Open

Валидация испорченных PDF #64

grigoriev-semyon opened this issue Sep 30, 2023 · 0 comments
Labels
bug 🐞 Что-то не работает

Comments

@grigoriev-semyon
Copy link
Member

Сейчас эта функция

def checking_for_pdf(f: bytes) -> tuple[bool, int]:

валидирует пдф неправильно. Она отметает некоторую часть валидных файлов

Решение:

  1. Валидацию переписать на библиотеку qpdf
  • Если qpdf вернул статус 2 то ошибка валидации - тут его уже ничего не откроет по идее

  • В большнстве случаев он взвращает статус 3 - warnings found. Это файл который открывается читалками или нет - как повезет(то есть ты просто можешь ломать пдф из блокнота и скорее всего это будет 3 код но файл бывает открывается например в акробате)

соотв статус 3 можно просто пропускать в надежде на то что его прочитает принтер

  • код 0 тоже пропускаем - это без ошибок

таким способом мы отрежем те файлы которые не открываются точно, но какие то пропустим

  1. так же есть способ рендерить этот пдф во время обработки запроса или на фронте и если он не рендерится то не давать загружать

скорее всего это будет оптимальнее потому что с точки зрения юзера нет никаких статус кодов - он либо рендерится либо нет

есть много решений под линукс - надо изучать на наличие cli. Может возможно рендерить прям на бэке

и под фронт нашел еще что то https://github.com/mozilla/pdf.js

  1. объединить решения 1 и 2 - валидировать сначала на фронте например, а потом проверять на критические ошибки на бэке
@github-project-automation github-project-automation bot moved this to Backlog in Viribus Team Sep 30, 2023
@grigoriev-semyon grigoriev-semyon added the bug 🐞 Что-то не работает label Sep 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🐞 Что-то не работает
Projects
Status: Backlog
Development

No branches or pull requests

1 participant