我想在浏览器中打开PDF,以便我编写下面的代码,但我发生了错误:“文件不以%PDF开头”。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<div style="width:358px;height:206px;">
<img src="http://www.pcsamerica.net/mp/images/reloimages/upload/home_home_image_117713.jpg" border="2" width="358" height="206" />
<img src="http://www.pcsamerica.net/mp/images/reloimages/upload/home_mug_image_117713.jpg" border="1" width="68" height="68" style="position:absolute; top:190px; left:25px; z-index:2"/>
<font style="position:absolute; top:15px; left:15px; z-index:2; border:1px; color:FFFFFF;font-family:impact;font-size:14px;">
</font>
</div>
<div style="width:425px;height:206px;padding-top:5px; padding-left:75px; text-align:center; border:1px;font-family:Arial;font-size:9px;">
</div>
</body>
</html>
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfcontent type="application/pdf">
答案 0 :(得分:8)
<!--- TAKES YOUR HTML AND SAVES IT TO A LOCAL VARIABLE --->
<cfsavecontent variable="PDFhtml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<div style="width:358px;height:206px;">
<img src="http://www.pcsamerica.net/mp/images/reloimages/upload/home_home_image_117713.jpg" border="2" width="358" height="206" />
<img src="http://www.pcsamerica.net/mp/images/reloimages/upload/home_mug_image_117713.jpg" border="1" width="68" height="68" style="position:absolute; top:190px; left:25px; z-index:2"/>
<font style="position:absolute; top:15px; left:15px; z-index:2; border:1px; color:FFFFFF;font-family:impact;font-size:14px;">
</font>
</div>
<div style="width:425px;height:206px;padding-top:5px; padding-left:75px; text-align:center; border:1px;font-family:Arial;font-size:9px;">
</div>
</body>
</html>
</cfsavecontent>
<!--- USES THE VARIABLE DEFINED ABOVE TO CREATE THE PDF USING CF TAGS --->
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfdocument format="pdf">
<cfoutput>
#variables.PDFhtml#
</cfoutput>
</cfdocument>
只是一点不是,你不能在Coldfusion的浏览器中进行PDF显示;你只是用Colfusion生成PDF。 PDF打开的位置是默认阅读器的选项,最常见的是Adobe Reader。如果PDF未在浏览器中打开,则可能会关闭“在浏览器中显示PDF”。要修复打开的Adobe Reader并转到Edit-&gt; Preference,在“Categories:”下单击“Internet”。在右侧,您会看到一个复选框,对于“在浏览器中显示PDF”标签,请确保单击它。
答案 1 :(得分:6)
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfcontent type="application/pdf">
不知道coldfusion,但这看起来好像是在向浏览器发送HTML并假装其PDF。那不行。
答案 2 :(得分:2)
认为你应该尝试以下方式:
<cfsavecontent variable="htmlContent">
here goes your HTML
</cfsavecontent>
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfdocument format="PDF"><cfoutput>#htmlContent#</cfoutput></cfdocument>
P.S。还没有真正测试过代码,只是一个简单的例子。
答案 3 :(得分:1)
从我的一些代码:
<!--- Force a download, don't cache --->
<cfheader name="Content-disposition" value="inline; filename=#arguments.name#" />
<cfheader name="Cache-control" value="max-age=10" /><!--- No cache doesn't work with IE6 due to bug --->
<cfcontent file="#my.safe_path#" type="#arguments.mime#" />
它必须是唯一输出的东西。这里的区别是与cfcontent一起使用的文件属性
答案 4 :(得分:0)
我同意derobert的回答。您获得的错误消息意味着浏览器通过在收到的文件开头查找字符%PDF (十六进制:25 50 44 46)来检查文件是否是有效的pdf文件。由于您没有发送pdf文件,因此签名不存在,因此出现错误消息。
答案 5 :(得分:0)
将html包装在cfdocument标签中,如此
<cfdocument format="pdf">html content</cfdoument>
应该做的伎俩