Salesforce 将两个PDF合并为一个PDF并在apex中附加到电子邮件中

Salesforce 将两个PDF合并为一个PDF并在apex中附加到电子邮件中,salesforce,pdf-generation,visualforce,apex,Salesforce,Pdf Generation,Visualforce,Apex,我需要将两个pdf合并到一个pdf中,并在附件中附加到salesforce中的自定义对象,然后通过电子邮件发送此合并的pdf 这是我的代码片段。其中contentPdf是一个pdf,b是另一个需要合并的pdf内容 PageReference pdf = PageReference(/apex/FirstPDF?id='+ccId); Blob contentPdf = pdf.getContent(); PageReference cadre = new PageRefe

我需要将两个pdf合并到一个pdf中,并在附件中附加到salesforce中的自定义对象,然后通过电子邮件发送此合并的pdf

这是我的代码片段。其中contentPdf是一个pdf,b是另一个需要合并的pdf内容

    PageReference pdf = PageReference(/apex/FirstPDF?id='+ccId);
    Blob contentPdf = pdf.getContent();
    PageReference cadre = new PageReference('/apex/SecondPDF?id=' + ccId);
    Blob b = cadre.getContentPdf();
    String combinedPdf = EncodingUtil.convertToHex(contentPdf)+EncodingUtil.convertToHex(b);
    Blob horodatagePdf = EncodingUtil.convertFromHex(combinedPdf);
    Attachment attachment = new Attachment();
    attachment.Body = horodatagePdf;
    attachment.Name = String.valueOf('New pdf.pdf');
    attachment.ParentId = ccId;
    insert attachment;

但问题是它没有显示正确的合并文档,而是只显示保存在我的机器中的最终pdf中的一页。我曾尝试使用contentAsPdf()从pageReference检索内容,但它不起作用。此外,该页面没有很好地生成我在附件中得到的页面。或者如果有任何其他方法可以快速完成

我认为你不能像那样合并PDF文档。看起来很疯狂。您可以简单地将文本文件连接在一起,但任何更复杂的文件(JPEG、PDF…)都有特殊的结构。。。很有可能您的代码可以工作,因为它生成的文件大小是单个文件大小的总和,但它不是有效文档,所以只有第一部分呈现OK

尝试创建另一个页面,通过调用其他两个页面(use)来重用它们。检查它的渲染是否与您所要的内容接近(例如可能存在样式冲突),以及是否有任何好处-调用
getContentAsPdf()