NetSuite Help
NetSuite Help

Reputation: 228

How to render "Transaction Forms PDF Layouts" in NetSuite

I am able to render Advanced PDF template/Email Template but not Transaction Forms PDF Layouts. I tried below:

var renderer = render.create(); renderer.setTemplateById(104); var fileObj = renderer.renderAsPdf(); But I get Missing_PDF_Parameter error.

Where am I going wrong?

Upvotes: 4

Views: 3540

Answers (2)

NSCoder
NSCoder

Reputation: 1

Here's a sample working snippet which prints the Invoice PDF and saves a copy in the File Cabinet. For invoices, the Subsidiary record has to be added if your PDF Template includes subsidiary values in it.

var idInvoice = ''; //Invoice ID
var sInvNum = ''; //File Name
var idFolder = ''; //File Cabinet Folder
var nPDFTemplateId = 1; //Integer value of the PDF Template Internal ID

var recInv = record.load({type: 'invoice', id: idInvoice});
var idSubsidiary = recInv.getValue({fieldId: 'subsidiary'}); //Subsidiary ID
var recSubsidiary = record.load({type: 'subsidiary', id: idSubsidiary});
var rendererInv = render.create();
rendererInv.addRecord('subsidiary', recSubsidiary);
rendererInv.addRecord('record', recInv);
rendererInv.setTemplateById(nPDFTemplateId);
            
var pdfFileInv = rendererInv.renderAsPdf();
pdfFileInv.folder = idFolder;
pdfFileInv.isOnline = true;
pdfFileInv.name = sInvNum;
idFileInv = pdfFileInv.save();

Upvotes: 0

w3bguy
w3bguy

Reputation: 2250

Glancing through the docs, it looks like you are missing the actual transaction record that you want to render, as well as the PDF template code. I tested with using their XML from the docs and it worked for me. Try something like the below.

require(['N/render','N/record'],function(render,record){
  function testing(){
    var xmlStr="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
               "<!DOCTYPE pdf PUBLIC \"-//big.faceless.org//report\" \"report-1.1.dtd\">\n" +
               "<pdf lang=\"ru-RU\" xml:lang=\"ru-RU\">\n" + "<head>\n" +
               "<link name=\"russianfont\" type=\"font\" subtype=\"opentype\" " +
               "src=\"NetSuiteFonts/verdana.ttf\" " + "src-bold=\"NetSuiteFonts/verdanab.ttf\" " +
               "src-italic=\"NetSuiteFonts/verdanai.ttf\" " + "src-bolditalic=\"NetSuiteFonts/verdanabi.ttf\" " +
               "bytes=\"2\"/>\n" + "</head>\n" +
               "<body font-family=\"russianfont\" font-size=\"18\">\n??????? ?????</body>\n" + "</pdf>";
    var renderer=render.create();
    renderer.templateContent=xmlStr;
    renderer.addRecord('record',record.load({
      type:record.Type.INVOICE,
      id:123456789
    }));
    var invoicePdf=renderer.renderAsPdf();
  }

  testing();
});

Link to render docs: 2.0 render.TemplateRenderer

Upvotes: 1

Related Questions