First, I will add a button in ‘BeforeLoad’ event of ‘user-event script’.
Here, nlapiResolveURL(type, identifier, id, displayMode) API is used to create a URL on-the-fly by passing URL parameters from within SuiteScript.
nlobjForm.addButton(name, label, script) is used to create a button. nlapiLogExecution(type, title, details) logs an entry in the script Execution Log subtab, which appears on the Script Deployment page.
function UserEventAddButton() { var internalId = nlapiGetRecordId(); if (internalId != null) { var createPdfUrl = nlapiResolveURL('SUITELET', 'customscript_suitelet_transferorderpdf', 'customdeploy_transferorderpdf', false); createPdfUrl += '&id=' + internalId; //---add a button and call suitelet on click that button and it will open a new window var addButton = form.addButton('custpage_addButton', 'Print', "window.open('" + createPdfUrl + "');"); } else { nlapiLogExecution('DEBUG', 'Error', 'Internaal id of the record is null'); }
Then, on button click, a ‘suitelet script’ will be called to create a pdf.
nlapiXMLToPDF(xmlstring) API passes XML to the BFO tag library (which is stored by NetSuite),
and returns a PDF nlobjFile object.
setContentType(type, name, disposition) sets the content type for the custom responses (and an optional file name for binary output).
write(output) write information (text/xml/html) to the response.
function SuiteletPdfGeneration(request, response) { var xml = "\n\n"; xml += ""; xml += "
"; xml += ""; xml +="HELLO"; //Add values(in string format) what you want to show in pdf xml += ""; var file = nlapiXMLToPDF(xml); response.setContentType('PDF', 'Print.pdf ', 'inline'); response.write(file.getValue()); }