【问题标题】:Displaying the contents of a PDF file on the page using Coldfusion使用 Coldfusion 在页面上显示 PDF 文件的内容
【发布时间】: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/1636917stackoverflow.com/q/291813/1636917
  • "ExtractText" 正是这样做的——仅文本。不支持格式或 html。尽管有将 pdf 转换为 html 的外部工具,但这项任务并非易事。最简单的方法是 @Miguel-F 建议的 - 将 pdf 文件嵌入 cfm/html 页面或使用 iframe。
  • @Miguel-F 和 Ageax 感谢您的帮助。该链接给了我我需要知道的东西。很抱歉重新发布的问题,我想我在寻找答案时错过了它。

标签: pdf coldfusion cfpdf


【解决方案1】:

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

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

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

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

【讨论】:

  • 1.我很惊讶反斜杠的工作。 2.它成功了,你可以把它标记为接受的答案
  • 很高兴该信息对您有所帮助,并感谢您回来并提供答案。
  • @James A Mohler 我不得不等待一天才能接受它作为答案。但这确实奏效了。我有使用“/”的文件路径,但这会引发错误。所以我换了他们。我猜它在Windows服务器上?我是这个项目的新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2011-06-12
  • 1970-01-01
  • 2011-10-30
相关资源
最近更新 更多