【问题标题】:What might cause the images from rendering properly in PDF generation?什么可能导致图像在 PDF 生成中正确呈现?
【发布时间】:2012-03-27 15:16:09
【问题描述】:

我正在使用 ColdFusion 8。

我有一个格式完美的 HTML 页面,我想将其转换为 PDF。 ColdFusion 大约需要 250 毫秒来创建此内容。代码经过验证,在各个方面都没有问题,除了创建 PDF。

我这样创建 PageContent 变量:

<!--- CREATE PAGE AS CONTENT --->
<cfsavecontent variable="PageContent">
<html>
<head></head>
<body>
<cfoutput>
    // PAGE CONTENT IS HERE
<cfoutput>
</body>
</html>
</cfsavecontent>

我可以在浏览器中以 HTML 格式完美地显示此 PageContent,在 Word 或 Excel 中打开它。我尝试创建这样的 PDF:

<cfdocument format="pdf">
<cfoutput>
   #PageContent#
</cfoutput>
</cfdocument>

页面内容具有内联样式、图像、div 和表格。如果我删除带有空字符串的图像路径和文件,则该文档有效。这里是

我认为 PDF 生成器阻塞了图像路径,尽管这些路径对我来说似乎很完美,并且在其他任何地方都可以很好地渲染。正在为 img 标记提供完整的 HTTP 路径,这是完全有效的。这是一个不起作用的:

http://dev.iqcatalogs.com/avcat/IMAGES/products/spotlight/ef17_40_4lu_c2_186x279.gif

什么可能导致图像无法在 PDF 中正确呈现?

【问题讨论】:

  • 如果您使用localUrl="yes" 并使用本地路径(即/avcat/images/...)而不是完整的url,有什么变化吗?
  • @Leigh,这是接下来要尝试的事情。但这不是我想做的。但似乎没有其他任何工作。
  • 是的,我认为这不是您最终想要的 - 但它可能有助于您进行故障排除。我猜你已经看过usual suspects 了?
  • @Leigh,这是防火墙问题。请回答问题,以便我选择它作为正确答案。 “您需要设置防火墙,使服务器可以向自身发送 HTTP 请求。”

标签: coldfusion pdf-generation coldfusion-8


【解决方案1】:

(来自上面的 cmets)我猜你已经看过 usual suspects 了?

ie 2) 如果您的服务器位于防火墙后面。正如我们前面提到的,CF 服务器需要为图像发送 HTTP 请求。如果防火墙 阻止来自服务器的任何传出连接,CF 将无法 检索它们并将显示一个红色 x 代替它们。你会需要 以服务器可以发送 HTTP 的方式设置防火墙 向自己请求。

【讨论】:

  • 您的建议是正确的。我们的服务器无法拨打电话。我们从使用域名更改为使用 IP 地址,并且效果很好。谢谢!
【解决方案2】:

请记住,要使 Cfdocument 正常工作, 是否可以在浏览器中提取图像并不重要。只有 server 可以拉起它才重要。最可能的原因是域解析——服务器无法获得正确的 IP 地址——或者它被阻止检索内容。请参阅此帖子。

resolution and cfdocument

【讨论】:

  • @Mark - 目前,我预定了今年的一个长期项目 :)
  • 完成后给我发一条推文 (@cfwebtools)...我会给你一个新的 :)
猜你喜欢
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 2013-01-19
  • 1970-01-01
相关资源
最近更新 更多