NetSuite Advanced PDF Создание с помощью кнопки - PullRequest
0 голосов
/ 09 октября 2019

Я создал кнопку в форме оценки для печати расширенного PDF.
Тем не менее, я получаю следующую ошибку в журнале

java.lang.java.lang.StringIndexOutOfBoundsException: Индекс строки вне диапазона: 0

Я где-то читал, что это может быть связано с изображениями в шаблоне, но я пытался удалить их и все еще получаю ошибку.
у кого-нибудь есть идеи для меня об этом?

Код для создания / рендеринга PDF:

* @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope Public
 */
define([
    'SuiteScripts/Directory/Library.js'
,   'N/render'
,   'N/record'
],
function (Library, render, record)
{
    /**
     * Main entry function
     *
     * @param {Object} context
     * @returns {Void}
     */
    function PrintPriceIncreaseQuote(context)
    {
        var renderer = null;

        try
        {
            if (context.request.method == 'GET')
            {
                renderer = createRenderer(context);
                printTemplate(context.response, renderer);
            }
        }
        catch (e)
        {
            Library.errorHandler('PrintPriceIncreaseQuote', e);
        }
    }

    /**
     * Create renderer
     *
     * @param {Object} context
     * @returns {Object} renderer
     */
    function createRenderer(context)
    {
        var renderer = null;
        var recordId = 0;

        try
        {
            recordId = context.request.parameters.id;

            //Create the renderer object
            renderer = render.create();
            renderer.setTemplateByScriptId('CUSTTMPL_125_4099_SB7_165');
            renderer.addRecord({templateName: 'record',
                record: record.load({
                    type: record.Type.ESTIMATE,
                    id: recordId
                })
            });
        }
        catch (e)
        {
            Library.errorHandler('createRenderer', e);
        }
        return renderer;
    }

    /**
     * Print merged template
     *
     * @param {Object} response
     * @param {Object} renderer
     * @returns {Void}
     */
    function printTemplate(response, renderer)
    {
        var pdfFile = null;

        try
        {
            pdfFile = renderer.renderAsPdf();
            response.writeFile({file: pdfFile, isInline: true});
        }
        catch (e)
        {
            Library.errorHandler('printTemplate', e);
        }
    }

    return {
        onRequest: PrintPriceIncreaseQuote
    };
});
'''/**

1 Ответ

0 голосов
/ 09 октября 2019

Я попробовал ваш код, он хорошо работает с моими шаблонами XML / PDF. Проверьте структуру XML DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...