Я хочу сохранить строку base64, извлеченную из холста HTML5 через Javascript, в файл PDF с помощью Tcl.
Я получаю SDR строки base 64 из Canvas через JS: let data = chart.getImage('stream').data;
Тем временем я сохранил эту base64Данные в файле для тестирования.В моем скрипте Tcl я загружаю этот файл и пытаюсь преобразовать его с помощью пакета pdf4tcl .
#! /bin/env tclsh
# import Tcl (optional) but makes script more portable
package require Tcl
# import pdf4tcl
lappend auto_path "C:/Users/ - deleted for privacy ^^ -"
package require pdf4tcl
# Read demo File (contains base64 encoded canvas)
set fp [open "singerGraph.txt" r]
set canvas_data [read $fp]
close $fp
# create a pdf object
pdf4tcl::new mypdf -paper a4 -margin 15mm
mypdf startPage
# this command doesnt work
# mypdf putRawImage $image_data 60 20 -height 40
# write pdf to a file
mypdf write -file mypdf.pdf
mypdf destroy
Метод putRawImage дает
instead
while executing
"binary format H* $row"
(class "::pdf4tcl::pdf4tcl" method "putRawImage" line 88)
invoked from within
"mypdf putRawImage $canvas_data 60 20 -height 40"
(file "base64ToPdf.tcl" line 28)
Но я думаю, что этов любом случае это неправильная команда ...
Для простого теста этой базы 64 может быть достаточно
data = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";
Однако мои Данные начинаются с: data:application/octet-stream;base64,
, но я не знаю,это важно или нет.Тестовые данные слишком длинные, чтобы вставить их сюда.
Может ли кто-нибудь привести меня в правильном направлении.Так что я могу преобразовать эти данные в PDF или даже PNG будет достаточно на данный момент.