我正在尝试使用Google应用脚本创建自己的条形码标签。我能够检索条形码的图像blob,但我希望能够为其添加另一行文本。是否可以组合或编辑图像blob?如果是这样的话怎么会这样做。
这是我目前获取条形码的代码。
function createLabel() {
var url = "http://www.barcodesinc.com/generator/image.php?code=20-001-001&style=196&type=C128B&width=200&height=100&xres=1&font=3"
var image = UrlFetchApp.fetch(url).getBlob();
DriveApp.createFile(image);
}
我知道条形码下面有数据,但是我需要让这个数字更大更容易阅读。
我尝试过创建一个文档并插入文本和图像,但它只是打印,就像我需要打印一样。
答案 0 :(得分:1)
Google尚未在Apps脚本中提供任何图像处理方法。也许当Google Draw支持应用程序脚本时,您可以使用一些东西以编程方式将图像插入到图形中并向其中添加文本,但是现在您必须创建自己的临时解决方案。
您没有指定最终目标是什么 - 一张相同的标签,一张不同的标签或一个标签显示在屏幕上供用户保存/下载。但是这里有一些想法尝试:
最后注意事项:您正在使用的条形码生成器--barcodesinc.com - 允许您生成没有文本和/或边框的条形码。这可能就是你想要的标签 - 没有必要在你的标签上加上两次代码文字。
答案 1 :(得分:0)
这是我目前针对自己问题的解决方案。使用HtmlService我能够创建"文档"我需要的。并打印出来。 html的打印票据和样式需要一些微调,但这可以起作用。
" CloudPrintLib"是Google Cloud Print with Apps Script的连接解决方案,请参阅此博客文章以供参考。 http://ramblings.mcpher.com/Home/excelquirks/guests/cloudprint
function createLabelDoc() {
var url = "http://www.barcodesinc.com/generator/image.php?code=20-001-001&style=196&type=C128B&width=200&height=100&xres=1&font=3";
var html = HtmlService.createHtmlOutput().setTitle('HtmlAlseLabel');
html.append('<p>20-001-001</p><br>');
html.append('<img src="http://www.barcodesinc.com/generator/image.php?code=20-001-001&style=196&type=C128B&width=200&height=100&xres=1&font=3"/>')
//DriveApp.createFile(html.getBlob().setName('HTMLBarcode'));
var ticket = {
version: "1.0",
print: {
duplex: {
type: "NO_DUPLEX"
}
}
}
Logger.log(CloudPrintLib.submit("printeridhere", html.getTitle(), ticket, html.getBlob()));
}
感谢azawaza帮助思考这个问题。