Trying to generate multiple picking tickets combin...
# suitescript
l
Trying to generate multiple picking tickets combined into a single pdf via a suitelet. Not able to get it to work. Unexpected error (the best kind)
Copy code
var tranId = [5599467, 5599591];

                var xmlStr = '<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">'
                xmlStr += '<pdfset>';


                for (var i = 0; i < tranId.length; i++) {

                    var salesOrderRec = record.load({

                        type: record.Type.SALES_ORDER,

                        id: tranId[i]

                    });

                    var renderer = render.create();

                    renderer.setTemplateByScriptId('CUSTTMPL_SSA_V1');

                    renderer.addRecord({

                        templateName: 'record',

                        record: salesOrderRec

                    });
                    log.debug("Renderer: "+ renderer);
                    // Escape ampersand in logo url

                    // xmlStr += renderer.renderAsString().replace(/&(?!(#\\d+|\\w+);)/g, "&$1");

                }

                xmlStr += '</pdfset>';

                var pdfFile = render.xmlToPdf({

                    xmlString: xmlStr

                });

                context.response.writeFile({

                    file: pdfFile

                });
a
As far as I remember you need to generate the individual PDFs, save them to the file cabinet, make them available without login to be able to merge them using pdfset.
b
you can also do pdf elements like the attempt here
but its likely a problem with
CUSTTMPL_SSA_V1
l
Interesting, that’s a picking ticket template
b
an actual template will start wtih
Copy code
<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">
which is not a pdf element
❤️ 1
r
https://bfo.com/products/report/docs/tags/tags/pdfset.html @alien4u is describing this line, using the file url. This is what I've done, but it does need to be available without login:
Copy code
<pdf src="resource/coverpdf.pdf" />