zoukankan      html  css  js  c++  java
  • Salesforce: getContent()和getContentAsPDF()的使用

    需求中,需要将VF页面的内容转换成Blob格式使用,即会用到getContent()或者getContentAsPDF()方法

    首先要将VF页面进行实例化:

    PageReference invoicePage = new PageReference('/apex/KayakInvoicePDF');
     
    还可以给VF页面传递参数:
    invoicePage.getParameters().put('id', invoice.Id);
     
    然后即可使用getContent()或者getContentAsPDF()将页面转换为blob格式:
    Blob pageData = invoicePage.getContent();
    Blob pageData = invoicePage.getContentAsPDF();
     
    getContent(): 返回的Blob的内容取决于页面的呈现方式。如果页面以PDF文件呈现,它将返回PDF文档。如果页面未呈现为PDF,它将返回HTML。要以string形式访问返回的HTML的内容,可以使用toString()方法。
    getContentAsPDF(): 返回的Blob内容始终以PDF格式呈现。
     
    要注意的是getContent()和getContentAsPDF()都不能在这三种情况下使用:
    Triggers
    Test methods
    Apex email services
     
    转化为Blob之后,即可将它应用到实际情况中。
     
    附参考代码:
    PageReference invoicePage = new PageReference('/apex/KayakInvoicePDF');
    invoicePage.getParameters().put('id', recordId);
    invoicePage.setRedirect(false);
    Blob pageData;
    if (!Test.isRunningTest()) {
      pageData = invoicePage.getContent();
      //pageData = invoicePage.getContentAsPDF();
    } else {
      pageData = Blob.valueOf('this is a test');
    }
     
    //create attachment
    Attachment att = new Attachment(ParentId = recordId, Body = pageData, Name='Test.pdf');
    insert att;
     
    //create and send email
    Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
    attachment.setBody(pageData);
    attachment.setContentType('application/pdf');
    attachment.setFileName('attachment.pdf');
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    mail.setSubject('Test Email');
    mail.setToAddresses(new String[]{ 'test@test.com' });
    mail.setHtmlBody('test');
    mail.setFileAttachments(new Messaging.EmailFileAttachment[]{ attachment });
    Messaging.sendEmail(new Messaging.Email[]{ mail }, false);
     
  • 相关阅读:
    查看JVM
    性能测试 -- 实际问题
    性能测试 -- 常用命令
    性能测试 -- 实际例子
    性能测试 -- 内核调优
    jmeter分布式环境
    Linux 安装配置Subversion edge
    Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
    Ubuntu下eclipse安装svn插件
    Jenkins入门系列之——03PDF文档下载
  • 原文地址:https://www.cnblogs.com/clsriz/p/13558375.html
Copyright © 2011-2022 走看看