我有一个要求,我想将两个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 ...)都具有特殊的结构...从某种意义上说,代码生成的文件的大小很可能是单个文件的总和。尺寸,但它不是有效的文档,因此只有第1部分才能正常显示。
尝试制作另一个页面,该页面将通过调用它们来重用其他2个页面(使用<apex:include>
)。检查它是否呈现出您所追求的效果(例如,可能发生样式冲突),以及它是否有用-请致电询问getContentAsPdf()
吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句