Node.js - Как встроить PDF-файл, введенный пользователем, в мобильное устройство без использования Flash? - PullRequest
0 голосов
/ 28 ноября 2018

Я занимаюсь разработкой веб-приложения, в котором пользователь может отправлять фотографии своих личных документов.Эти документы могут быть отправлены в виде изображений или файлов PDF, и я читаю и отображаю их предварительный просмотр с помощью тега embed и с помощью метода ReadAsDataURL FileReader.

Вот код:

  var oFReader = new FileReader();
  oFReader.readAsDataURL($("#input-id")[0].files[0]);

  oFReader.onload = function (oFREvent) {
       $('#embed-tag-id').attr('src', oFREvent.target.result); //base64 string
       $('#embed-tag-id').attr('type', mimeType); // mimeType
  };

Если пользователь отправляет изображение, предварительный просмотр отлично работает как на мобильных устройствах, так и на настольных компьютерах, никаких проблем там нет.

Однако, еслиотправленный документ представляет собой файл PDF, предварительный просмотр которого не работает на мобильных устройствах. Я полагаю, что это связано с Flash, который по умолчанию не установлен на этих устройствах.

Я пытался использовать <object> в качествеа также <iframe> и ни один из них не работал либо

Я думал об использовании чего-то вроде Google Docs Viewer, но мне нужно было загрузить это изображение куда-то, что не является намерением, учитывая, что пользователь только просматриваетфайл введен и фактически не отправляется в приложение.

Я бы хотел решить эту проблему, все еще используя <embed>, потому что он работает просто для imaи PDF-файлы, но если это невозможно, я с удовольствием попробую другое решение.

Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Я полагаю, что это связано с Flash, который не установлен по умолчанию на этих устройствах.

Нет, это не имеет никакого отношения к Flash, это связано с отсутствиемвстраиваемый PDF-ридер.

Если пользователь отправляет изображение, предварительный просмотр отлично работает как на мобильных устройствах, так и на настольных компьютерах, проблем нет.

Возможно, есть некоторыерабочие столы, на которых он не работает.

<embed> проблематично.Это эффективный способ встраивать контент, который отображается с помощью плагинов, а не самого браузера.Иногда они обрабатываются браузером, например, в случае с Flash в Chrome, и, возможно, вашими изображениями.

Вам придется либо отрендерить этот PDF-файл в Canvas, либо SVG с JavaScript, либо вамВам нужно будет загрузить его (хотя бы частично) на сервер, чтобы получить изображение для предварительного просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...