You need to sign in to do that
Don't have an account?
Niki Shah 12
how to create sand and save button on pdf
I create a custom object then i create action link visualforce page for pdf and now i want to create save and email button in visualforce page
Please have a look to the below code and make the changes as per the requirements
-- JavaScript --
{!requireScript("/soap/ajax/16.0/connection.js")}
{!requireScript("/soap/ajax/16.0/apex.js")}
var a = sforce.apex.execute("SendEmail","emailPdf",{localId:"{!Application__c.Id}"});
-- Apex Class Method --
public void SendEmail(Id localId){
Application__c inv = [Select Id, name From Application__c Where Id=:localId];
PageReference pdf = Page.PDFpage;// Replace PdfOfInvoice with your Page which render as PDF.
pdf.getParameters().put('id', localId);
// Blob b = pdf.getContentAsPDF();
Blob b;
if (Test.IsRunningTest()){b=Blob.valueOf('UNIT.TEST');}else{b = pdf.getContentAsPDF();}
// Create Attachment Object to attach with Email
Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
efa.setFileName(inv.Name+'.pdf');
efa.setBody(b);
// Define the email
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
// Sets the paramaters of the email
email.setSubject('PDF of Invoice - '+inv.Name);
email.setToAddresses( new List<String>{inv.Email__c} );
//email.setbccAddresses( new List<String>{'admin@gmail.com'} );
email.sethtmlBody('Hi '+inv.Name+',<br/><br/> '
+'Please find the attached Invoice.'
+'<br/><br/>'+'Thanks,'+'<br/>'
+UserInfo.getName()+'<br/>'
+UserInfo.getOrganizationName());
email.setFileAttachments(new Messaging.EmailFileAttachment[] {efa});
try{
Messaging.SendEmailResult [] result = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
}catch(System.Exception e){
}
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks,
Ajay Dubedi