提问者:小点点

使用Coldfusion在页面上显示PDF文件的内容


我有一个专门介绍标准操作程序 (SOP) 的页面。我希望此页面在页面中显示SOP,其上方有一个下载按钮(对于管理员来说,还有一个上传按钮)。基本上,我希望用户无需下载即可阅读SOP。我已经对按钮进行了排序,我几乎已经设置了显示,但格式已关闭。

管理员可以上传当前 SOP 的 PDF。然后,该文件将被存储并覆盖上次上传的内容。我尝试使用 cffile,但无论我尝试使用什么字符集,它都是不可读的。目前,我正在获取文件并将其提取为.txt,然后使用 cffile 将其读取到一个变量,然后将其输出到屏幕上。它有点工作,但格式都是错误的。

我知道我可以使用cfcontent,只需将页面设置为PDF格式,但我不想为了管理员上传新的SOP文件而添加新页面。(网站的构建方式必须是一个新页面)

<cfpdf
action="extracttext"
source="D:\file_path\SOP.pdf"
overwrite="true"
honourspaces="true"
type="string"
useStructure="true"
destination="D:\file_path\SOP.txt">

<cffile
action="read"
file="D:\file_path\SOP.txt"
variable="dcnSOP">

...


<cfoutput>#dcnSOP#</cfoutput>

基本上,我得到了一块未格式化的文本(如空格和新段落)。这是我想要的文本,在我想要的页面上。但看起来很糟糕。它似乎只是去除了任何新的行字符,只是将文本呈现在一个blob中。有没有更好的方法来做到这一点,而不只是使用cfcontent将整个页面变成PDF?


共1个答案

匿名用户

感谢@Miguel-F和@Ageax的建议,并引导我找到一个我在寻找答案时错过的问题。

<embed src="\file_path\SOP.pdf" width="800px" height="2100px"/>

这适用于除Chrome以外的所有浏览器(我们的客户不会使用移动浏览器)。我知道你可以使用谷歌的PDF阅读器来解决这个问题,如果有人对此感兴趣,这里有一个@Script47给出的例子:

 <embed src="https://drive.google.com/viewerng/
viewer?embedded=true&url=http://example.com/the.pdf" width="500" height="375">