ColdFusion:从多个PDF blob创建PDF

ColdFusion:从多个PDF blob创建PDF,pdf,coldfusion,cfpdf,Pdf,Coldfusion,Cfpdf,我的数据库中有多个pdf作为blob存储,我需要将它们合并以创建一个需要流式传输给用户的pdf 我知道,如果我从blob渲染单个pdf,那么这样做相当容易,但我不知道如何合并多个blob <cfheader name="Content-Disposition" value="inline; filename=#document.name#.#document.ext#"> <cfcontent type="application/pdf" variable="#document

我的数据库中有多个pdf作为blob存储,我需要将它们合并以创建一个需要流式传输给用户的pdf

我知道,如果我从blob渲染单个pdf,那么这样做相当容易,但我不知道如何合并多个blob

<cfheader name="Content-Disposition" value="inline; filename=#document.name#.#document.ext#">
<cfcontent type="application/pdf" variable="#document.content#">
我看到CFPDF有助于实现此功能,但似乎无法将我的blob放入CFPDF变量中。以前也有人问过类似的问题,但没有我想要的答案


谢谢

我想你可以做到以下几点

检索数据库中存储的每个pdf blob,使用cfpdf创建pdf,并将它们存储在某个临时目录中

  <cfpdf action="write" destination="c:\pdfs\1.pdf" source="#mypdfblob1" >
检索所有这些blob并将它们作为PDF存储在temp目录中

  <cfpdf action="write" destination="c:\pdfs\1.pdf" source="#mypdfblob1" >
通过在cfpdf Merge中指定临时目录,使用cfpdf Merge合并所有这些PDF

<cfpdf action="merge" directory="C:\pdfs" destination="C:\result.pdf">

如果可能,尝试使用ram://将blob数据转换为内存中的文件,以保存对磁盘的写入,然后将其用作cfpdf合并源。在cfpdf action=merge标记内循环查询时,可以对每个blob执行此操作:


注意:您可以使用单个临时文件-无需为查询中的每个blob创建不同的临时文件。

也尝试了,但我收到了错误:在cfpdf标记中的EXTRACTTEXT操作期间发生了错误。错误:无效文档。检查目录中的源或文件。尝试cfpdf write throws ByteArray对象无法转换为字符串。能否提供一些StackTrace并向blob添加ToString也没有帮助。请尝试转储变量document.contentYep,这样可以很好地转储二进制查询对象。顺便说一句,我想看看是否可以附加stacktrace.cfsimply,谢谢你的回答。过了一会儿,我不得不回到这个问题上来,我想我还没有解决这个问题。你的方法奏效了,除了一个小的修正。我已经编辑了代码以包含更新。很高兴能提供帮助。我的原始代码在CF9.0.1上工作,没有q.content的中间变量。您使用的是哪个CF版本?我也使用CF 9.0.1。在没有中间变量的情况下进行合并时出错。奇怪。也许热修复程序有所不同。无论如何,中间变量也可以在我的环境中工作,所以我已经调整了我的代码,以防其他人有同样的问题。