открыть PDF в браузере - PullRequest
       48

открыть PDF в браузере

1 голос
/ 27 августа 2009

Я хочу открыть 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">

Ответы [ 6 ]

8 голосов
/ 27 августа 2009
<!--- 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>

Только немного, вы не можете сделать так, чтобы PDF отображался в браузере из Coldfusion; вы просто создаете PDF с Colfusion. Где открывается PDF-файл - это опция вашего ридера по умолчанию, чаще всего Adobe Reader. Если PDF не открывается в браузере, возможно, у вас отключено «Отображение PDF в браузере». Чтобы исправить это, откройте Adobe Reader и перейдите в Edit-> Preference, в разделе «Categories:» нажмите «Интернет». Справа вы увидите флажок для надписи «Отображать PDF в браузере», убедитесь, что она нажата.

6 голосов
/ 27 августа 2009
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfcontent type="application/pdf">

Не знаю coldfusion, но похоже, что вы отправляете HTML в браузер и делаете вид, что его PDF. Это не сработает.

2 голосов
/ 27 августа 2009

Думаю, вам следует попробовать следующий способ:

<cfsavecontent variable="htmlContent">
here goes your HTML
</cfsavecontent>

<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">

<cfdocument format="PDF"><cfoutput>#htmlContent#</cfoutput></cfdocument>
* 1003 P.S *. На самом деле не проверял код, просто быстрый пример.
1 голос
/ 27 августа 2009

Из некоторых моих кодов:

<!--- 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

0 голосов
/ 01 сентября 2009

Оберните HTML-код в тег cfdocument примерно так

<cfdocument format="pdf">html content</cfdoument>

Это должно сработать

0 голосов
/ 27 августа 2009

Я согласен с ответом Дероберт . Полученное сообщение об ошибке означает, что браузер проверяет, является ли файл действительным файлом PDF, выполняя поиск символов % PDF (hex: 25 50 44 46) в начале полученного файла. Поскольку вы не отправляете pdf-файл, подписи нет, поэтому появляется сообщение об ошибке.

...