我一直在NetSuite中使用Suitelet来生成和返回PDF文档很长一段时间。但是,有一段时间他们已经被" scriptlet.nl" 而不是" filename.pdf" ,这是我以前得到的。对于我的生活,我不明白为什么。我使用了以下两个相同的结果:
function suiteletA(request, response) {
var xml = "";
// processing to generate XML
response.setContentType("PDF", "output.pdf", "inline");
var file = nlapiXMLToPDF(xml);
response.write(file.getValue());
}
function suiteletB(request, response) {
var xml = "";
// processing to generate XML
response.setContentType("PDF", "output.pdf", "inline");
response.renderPDF(xml);
}
我已经回顾过以前的代码,并没有看到任何可以解释它的明显事实。我在这里遗漏了什么吗?我不喜欢'知道它是否有所作为,但我通常在Chrome中工作,所以我无法帮助,但想知道这是否与它有关,就像Chrome内的某些内容发生变化导致结果发生变化一样。
- 编辑 -
这是响应标题的屏幕截图...
答案 0 :(得分:0)
好的,我弄明白了这笔交易是什么。
似乎如果将PDF写回浏览器的脚本作为HTTP GET进行操作,您可以使用实际的PDF名称和所有文件下载该文件,但如果脚本作为HTTP POST运行,你得到我报告的结果。至少,这是使用Chrome时发生的事情。同样地,在Firefox中,你不会得到" scriptlet.nl",但看似" document.pdf"作为可下载的文件。
因此,对于NetSuite和PDF输出,Chrome肯定看起来很傻。它也很糟糕地呈现基于BFO XML的PDF文档,导致整行字符在彼此之上呈现。您可以刷新文档,使其看起来不会疯狂,但它仍会打印字母在彼此之上,即使它们在屏幕上更长时间出现。