【发布时间】:2019-07-06 11:07:48
【问题描述】:
我有一个专门介绍标准操作程序 (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?
【问题讨论】:
-
为了在 HTML 页面中显示 PDF 文档,您需要嵌入内容或 iframe 内容,您不能将两者混合使用(浏览器不能这样做)。这已经在这里回答了 - stackoverflow.com/q/17784037/1636917 或 stackoverflow.com/q/291813/1636917
-
"ExtractText" 正是这样做的——仅文本。不支持格式或 html。尽管有将 pdf 转换为 html 的外部工具,但这项任务并非易事。最简单的方法是 @Miguel-F 建议的 - 将 pdf 文件嵌入 cfm/html 页面或使用 iframe。
-
@Miguel-F 和 Ageax 感谢您的帮助。该链接给了我我需要知道的东西。很抱歉重新发布的问题,我想我在寻找答案时错过了它。
标签: pdf coldfusion cfpdf