Данные рендеринга:uri данных в кодировке приложения/pdf Base64 в HTMLCanvasElement?

#javascript #html #html5-canvas

Вопрос:

Мне интересно, можно ли каким-то образом отобразить uri данных в кодировке data:application/pdf Base64 в элемент HTMLCanvasElement?

Мне нужно это сделать, потому что бизнес-требование заключается в том, что PDF доступен/загружается только после оплаты пользователем.

Где я нахожусь со своим кодом:

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

Я получаю строку с конечным кодом base64, используя const base64Data = pdf.output('datauristring') вызов метода этой библиотеки.

Затем я преобразую эту строку base64 в большой двоичный объект.

 const base64 = await fetch(base64Data)

const blob = await base64.blob()

this.PDF = URL.createObjectURL(blob)
 

Однако я думаю, что некоторые из этих шагов могут не понадобиться?

Кто — нибудь порекомендовал бы какие-либо потенциальные решения для рендеринга PDF внутри a CanvasHTMLElement ?

Комментарии:

1. pdf.js можете сделать это, сделать это самостоятельно, таким образом, также возможно, если у вас большая команда, много ресурсов и времени.

2. Хорошо, отлично. Где бы я мог найти документацию для достижения этой цели… вопрос в том, поставляется ли рендеринг на холсте с панелью инструментов… Мне не нужен никакой собственный пользовательский интерфейс браузера.UX, просто плоская визуализация страницы PDF. Никакого редактирования, загрузки, печати и т.д. Я говорю это, потому что смешно не иметь возможности сделать это изначально в 2021 году — Firefox-это полная катастрофа на этом фронте.

3. Вам не нужно включать полный просмотрщик, pdf.js это первый API с основными методами для анализа и визуализации PDF-файлов. mozilla.github.io/pdf.js/api Что касается вашей тирады, то она совершенно бесполезна и неуважительна. В pdf.js библиотека, на которую я ссылался, создана командой Mozilla, и они проделали большую работу по стандартизации этой части Интернета. Плевать на них здесь действительно оскорбительно.

4. Я нашел ваш комментарий столь же легкомысленным. По сути, мы не можем визуализировать PDF изначально, потому что Firefox не позволит нам отключить все панели инструментов для встроенного объекта. Это совершенно нелепо. Теперь мы должны использовать возможности сервера для преобразования необработанных входных данных в PDF, затем в PDF для разделения изображений для каждой страницы, сохранения этих изображений вместе с PDF и последующей отправки их пользователю. Полностью неблагоприятен для окружающей среды и экономически эффективен.

5. О чем ты говоришь? Вы должны прочитать и изучить предмет, с которым работаете, прежде чем начинать плевать повсюду.