The CreatorCon Call for Content is officially open! Get started here.

The attached PDF is blank

Lom
Tera Contributor

Hello,

can you help with this script below. It works but the pdf file attached is 0k:

 

var pdf_base64 = 'JVBERi0xLjMKJcfsj6IKMSAwIG9iagogPDwvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgMiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdID4+CmVuZG9iagoyIDAgb2JqIDw8L1Byb2NTZXQgNiAwIFIgL0ZvbnQgPDwvRjEgNSAwIFIgPj4gPj4KZW5kb2JqCjMgMCBvYmogPDwvVHlwZSAvUGFnZXMgL0tpZHMgWzEgMCBSXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKNCAwIG9iaiA8PC9MZW5ndGggNzggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCkJUCi9GMSA0OCBUZiAxMCAxMCBUZCAoSGVsbG8sIHdvcmxkLikgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqIDw8L1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago2IDAgb2JqIFsgL1BERiAvVGV4dCBdCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA2NyAwMDAwMCBuIAowMDAwMDAwMTc5IDAwMDAwIG4gCjAwMDAwMDAzMDUgMDAwMDAgbiAKMDAwMDAwMDM3NiAwMDAwMCBuIAowMDAwMDAwNDM3IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA3IC9Sb290IDMgMCBSPj4Kc3RhcnR4cmVmCjQ1NgUlRUYlRjAKJSVFTg==';



 var attachment = new GlideRecord('sys_attachment');
     attachment.initialize();
     attachment.table_name = "u_imp";
     attachment.table_sys_id = "9a1a7deb473f5290c3e13f52e36d4365";
     attachment.file_name = "test.pdf";
     attachment.content_type = "application/pdf";
     attachment.encoded_string = pdf_base64; 
     var sysId = attachment.insert();

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@Lom 

that's now how attachments are created.

try this script

If the base64 data is correct then the file will be uploaded fine and you can view the content as well

var pdf_base64 = 'JVBERi0xLjMKJcfsj6IKMSAwIG9iagogPDwvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgMiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdID4+CmVuZG9iagoyIDAgb2JqIDw8L1Byb2NTZXQgNiAwIFIgL0ZvbnQgPDwvRjEgNSAwIFIgPj4gPj4KZW5kb2JqCjMgMCBvYmogPDwvVHlwZSAvUGFnZXMgL0tpZHMgWzEgMCBSXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKNCAwIG9iaiA8PC9MZW5ndGggNzggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCkJUCi9GMSA0OCBUZiAxMCAxMCBUZCAoSGVsbG8sIHdvcmxkLikgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqIDw8L1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago2IDAgb2JqIFsgL1BERiAvVGV4dCBdCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA2NyAwMDAwMCBuIAowMDAwMDAwMTc5IDAwMDAwIG4gCjAwMDAwMDAzMDUgMDAwMDAgbiAKMDAwMDAwMDM3NiAwMDAwMCBuIAowMDAwMDAwNDM3IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA3IC9Sb290IDMgMCBSPj4Kc3RhcnR4cmVmCjQ1NgUlRUYlRjAKJSVFTg==';
var tableSysId = '9a1a7deb473f5290c3e13f52e36d4365';
var tableName = 'u_imp';
var contentType = 'application/pdf';
var ecc = new GlideRecord('ecc_queue');
ecc.initialize();
ecc.agent = "AttachmentCreator";
ecc.topic = "AttachmentCreator";
ecc.name = "test.pdf:" + contentType;
ecc.source = tableName + ":" + tableSysId;
ecc.payload = pdf_base64;
ecc.insert();

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

11 REPLIES 11

Pooja2998
Mega Sage

@Lom  ,
You can create a PDF using the PDFGenerationAPI:

var html = " Hello World!";
var pageProperties = {
    orientation: 'Portrait',
    top_margin: '0.5in',
    bottom_margin: '0.5in',
    left_margin: '0.5in',
    right_margin: '0.5in'
};
var incidentSysId = 'e40cb23583bf5210a411faa6feaad379';
var fontFamilySysId = '';  

var pdfSysId = new sn_pdfgeneratorutils.PDFGenerationAPI().convertToPDFWithHeaderFooter(
    html, 'incident', incidentSysId, 'My First PDF', pageProperties, fontFamilySysId
);
gs.info("PDF successfully generated: " + pdfSysId);
 

Also, refer to the following articles for more details:


https://www.servicenow.com/community/developer-articles/generating-custom-pdfs-using-the-new-pdfgene...
https://www.servicenow.com/community/developer-articles/generating-a-pdf-from-html/ta-p/2306347

If the above information helps you, Kindly mark it as Helpful and Accept the solution.
Regards,
Pooja.

Lom
Tera Contributor

Hello Pooja2998,

I don't want to generate a PDF.

I want to create a record in sys_attachment with a PDF file encoded in base64 (var pdf_base64 in the script).

Ankur Bawiskar
Tera Patron
Tera Patron

@Lom 

that's now how attachments are created.

try this script

If the base64 data is correct then the file will be uploaded fine and you can view the content as well

var pdf_base64 = 'JVBERi0xLjMKJcfsj6IKMSAwIG9iagogPDwvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgMiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdID4+CmVuZG9iagoyIDAgb2JqIDw8L1Byb2NTZXQgNiAwIFIgL0ZvbnQgPDwvRjEgNSAwIFIgPj4gPj4KZW5kb2JqCjMgMCBvYmogPDwvVHlwZSAvUGFnZXMgL0tpZHMgWzEgMCBSXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKNCAwIG9iaiA8PC9MZW5ndGggNzggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCkJUCi9GMSA0OCBUZiAxMCAxMCBUZCAoSGVsbG8sIHdvcmxkLikgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqIDw8L1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago2IDAgb2JqIFsgL1BERiAvVGV4dCBdCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA2NyAwMDAwMCBuIAowMDAwMDAwMTc5IDAwMDAwIG4gCjAwMDAwMDAzMDUgMDAwMDAgbiAKMDAwMDAwMDM3NiAwMDAwMCBuIAowMDAwMDAwNDM3IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA3IC9Sb290IDMgMCBSPj4Kc3RhcnR4cmVmCjQ1NgUlRUYlRjAKJSVFTg==';
var tableSysId = '9a1a7deb473f5290c3e13f52e36d4365';
var tableName = 'u_imp';
var contentType = 'application/pdf';
var ecc = new GlideRecord('ecc_queue');
ecc.initialize();
ecc.agent = "AttachmentCreator";
ecc.topic = "AttachmentCreator";
ecc.name = "test.pdf:" + contentType;
ecc.source = tableName + ":" + tableSysId;
ecc.payload = pdf_base64;
ecc.insert();

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hello @Ankur Bawiskar ,

This is we are inserting a record to ecc queue but not into attachment table.
will it create a record in attachment table.
Asking this question for learning purpose.

Regards,
Debasis