[英]NetSuite Restlet PDF file encoding issue
我的代碼在文檔存儲庫中正確創建了一個文件,並將其附加到 NetSuite 中的記錄。 但是,當它應該是 PDF 時,文件類型是“其他二進制文件”。 我讀到,對於 PDF,我們必須以 base 64 進行編碼,但即便如此,它也不會生成 PDF。 有人看到問題嗎?
var fileobj = nlapiCreateFile(docname, doctype, doccontent)
fileobj.setName(docname)
fileobj.setFolder(folderid)
fileobj.setIsOnline(true)
fileobj.setEncoding('UTF-8')
var fileid = nlapiSubmitFile(fileobj)
傳入數據:
{
"filecontent" : "test",
"filename" : "PO Doc Test",
"filetype" : "PDF",
"folderid" : 521,
"recordtype": "purchaseorder",
"recordid": 13832
}
您必須使用 BFO 生成 PDF。 這是一個生成包含字符串“test”的 PDF 的快速示例:
function createPDFFile(docname, folderid)
{
var xml = "<?xml version=\"1.0\"?>\n<!DOCTYPE pdf PUBLIC \"-//big.faceless.org//report\" \"report-1.1.dtd\">\n<pdf>\n<body font-size=\"18\">test</body>\n</pdf>";
var fileobj= nlapiXMLToPDF(xml);
fileobj.setName(docname);
fileobj.setFolder(folderid);
fileobj.setIsOnline(true);
fileobj.setEncoding('UTF-8');
var fileid = nlapiSubmitFile(fileobj);
}
在我對您的代碼的測試中,將文件名從PO Doc Test
更改為PO Doc Test.pdf
會在文件櫃中創建一個 PDF 文件類型而不是其他二進制文件的文件。
雖然這會創建一個 NetSuite 識別為 PDF 文件類型的文件,但該test
似乎不是有效的 PDF 文件內容,因此 Acrobat 閱讀器無法打開生成的文件。
文檔說,當嘗試創建像 PDF 這樣的二進制文件時,內容必須是 base64 編碼的,因此您應該將內容包裝在nlapiEncrypt(content, 'base64')
。
另外,請查看nlapiXMLToPDF()
。 此函數可讓您在 XML 字符串中定義內容並從中生成 PDF。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.