Skip to content

Instantly share code, notes, and snippets.

@michoelchaikin
Created August 18, 2016 23:58
Show Gist options
  • Save michoelchaikin/8250088d4d993250d59a5fdf958515d8 to your computer and use it in GitHub Desktop.
Save michoelchaikin/8250088d4d993250d59a5fdf958515d8 to your computer and use it in GitHub Desktop.
Netsuite Advanced PDF/HTML templates for any record type
/**
* Add 'Print Item Labels' button to Item Page
*
* Script ID: customscript_mos_itemlabels_ue
* Script Type: User Event
* Deployed to: Inventory Item
*
*/
function beforeload(type, form) {
if (type == 'view') {
var script = "window.open(nlapiResolveURL(\'SUITELET\', \'customscript_mos_itemlabels_sl\', \'customdeploy_mos_itemlabels_sl\') + \'&custom_id=\' + nlapiGetRecordId());";
form.addButton('custpage_printitemlabel','Print Item Label', script);
}
}
/**
* Suitelet to print Item Label
*
* Script ID: customscript_mos_itemlabels_sl
* Script Type: Suitelet
*
*/
function suitelet(request, response) {
try {
var id = request.getParameter('custom_id');
if(! id) {
response.write('custom_id parameter missing');
}
var record = nlapiLoadRecord('inventoryitem', id);
var renderer = nlapiCreateTemplateRenderer();
var template = nlapiLoadFile('SuiteScripts/MOS Advanced PDF Forms/Item Label.xml');
renderer.setTemplate(template.getValue());
renderer.addRecord('record', record);
var xml = renderer.renderToString();
var pdf = nlapiXMLToPDF(xml);
response.setContentType('PDF', 'itemlabel.pdf', 'inline');
response.write(pdf.getValue());
} catch(err) {
response.write(err + ' (line number: ' + err.lineno + ')');
return;
}
}
@tbell630
Copy link

Hello, Any chance you would walk me through this and help me understand it better?

@michoelchaikin
Copy link
Author

@tbell630 Sure, you can connect with me via Slack channel (https://netsuiteprofessionals.com/slack/, @michoel) and I'll be happy to walk you through

@halpm3
Copy link

halpm3 commented Jan 7, 2021

@michoelchaikin can this be used on a transaction instead of item record? Trying to figure out how to print custom labels from PO record from line level info with barcodes..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment