1

以下のコードを書くためにブラウザーで 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">
4

6 に答える 6

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 を開く場所は、デフォルトのリーダー (最も一般的な Adob​​e Reader) のオプションです。PDF がブラウザーで開かない場合は、[ブラウザーに PDF を表示] がオフになっている可能性があります。これを修正するには、Adobe Reader を開いて [編集] -> [設定] に移動し、[カテゴリ:] の下の [インターネット] をクリックします。右側に「ブラウザに PDF を表示」ラベルのチェックボックスが表示されます。クリックされていることを確認してください。

于 2009-08-27T16:41:59.060 に答える
6
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf">
<cfcontent type="application/pdf">

coldfusion についてはわかりませんが、HTML をブラウザに送信して PDF のふりをしているように見えます。それはうまくいきません。

于 2009-08-27T07:04:36.910 に答える
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>

PS実際にはコードをテストしていません。簡単な例です。

于 2009-08-27T09:58:44.143 に答える
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 で使用されるファイル属性です。

于 2009-08-27T07:41:10.253 に答える
0

derobertの回答に同意します。表示されるエラー メッセージは、ブラウザが受信したファイルの先頭にある文字%PDF (16 進数: 25 50 44 46) を検索して、ファイルが有効な pdf ファイルであるかどうかを確認することを意味します。PDFファイルを送信していないため、署名がないため、エラーメッセージが表示されます。

于 2009-08-27T07:11:54.667 に答える
0

HTML を cfdocument タグで次のようにラップします。

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

それはトリックを行う必要があります

于 2009-09-01T14:05:59.587 に答える