SS2.0 Получить изображение объекта из HTML-холста и сохранить в файл кабинет - PullRequest
0 голосов
/ 09 октября 2019

В настоящее время я экспериментирую с некоторым сценарием, чтобы взять изображение из картотеки, перенести URL-адрес в HTML-холст, получить ширину / высоту (чтобы вставить в пользовательские поля и изменить размер исходного изображения.

Выше все в порядке в клиентском скрипте - без проблем.

Однако, я хочу знать, это

  1. Как я могу получить изображение с измененным размером в виде файлаобъект (н / файл) и сохраните его в картотеке без вмешательства пользователя.

  2. Существует ли способ работы с холстом HTML из серверного контекста.

Для # 1 это кажется трудным, поскольку модуль N / file недоступен для ClientScript, поэтому, возможно, потребуется отправить его в SuiteLet?

Кое-что из моего кода до сих пор

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = new Image();

img.onload = function () {

// set size proportional to image
canvas.height = canvas.width * (img.height / img.width);

// step 1 - resize to 50%
var oc = document.createElement('canvas'),
octx = oc.getContext('2d');

oc.width = img.width * 0.5;
oc.height = img.height * 0.5;
octx.drawImage(img, 0, 0, oc.width, oc.height);

// step 2
octx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5);

// step 3, resize to final size
ctx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5, 0, 0, canvas.width, canvas.height);

var imageContent = canvas.toDataURL('image/png');
var decodedContent = btoa(imageContent);

scriptContext.currentRecord.setValue({fieldId:'custitem_image1_width', value: img.width})
scriptContext.currentRecord.setValue({fieldId:'custitem_image1_height', value: img.height})


img.src = scriptContext.currentRecord.getValue({fieldId:'custitem_image1_thumb_url'})

Выше работает в настоящее время в CSS pageInit, и у меня есть отдельный скрипт UES beforeLoad, создающий поле INLINEHTML custpage_htmlcanvas.

1 Ответ

1 голос
/ 09 октября 2019
var fileObj = file.create({
name: 'test.txt',
fileType: file.Type.PLAINTEXT,
contents: 'Hello World\nHello World',
description: 'This is a plain text file.',
encoding: file.Encoding.UTF8,
folder: 30,
isOnline: true
});

Используйте файловый модуль в suitescript 2.o, затем создайте файл в filecabinet.

...