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);
     
  • 相关阅读:
    thinkphp tp5 常用 functions
    nginx配置虚拟机 vhost 端口号 域名 区分虚拟机
    thinkphp tp5 模板 引擎 字符串 截取 函数 省略 显示
    C++运算符重载
    c++纯虚函数
    c++面向对象模型---c++如何管理类,对象以及它们之间的联系
    c++多态
    c++友元函数
    c语言的函数指针
    c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式
  • 原文地址:https://www.cnblogs.com/clsriz/p/13558375.html
Copyright © 2011-2022 走看看