2009-08-27 12 views
1

ブラウザでPDFを開きたいので、以下のコードを書きましたが、「ファイルが%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
<cfheader name="Content-Disposition" value="inline; filename=Test.pdf"> 
<cfcontent type="application/pdf"> 

ColdFusionを知っていますが、ブラウザにHTMLを送信し、そのPDFをふりをしているように見えます、それは本当にしないでください。それは動作しません。

+2

を行う必要がありますので、

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

などのcfdocumentタグでHTMLを包みます。 ColdFusionには、HTMLをPDFに変換して機能させるための特別なタグがあります。 – Sergii

0

私は答えにderobertで同意します。あなたが受け取るエラーメッセージは、ファイルが有効なPDFファイルであるかどうかを、受信したファイルの先頭にある%PDF(16進数:25 50 44 46)の文字を検索してチェックすることを意味します。あなたはpdfファイルを送信していないので、署名はそこにないので、エラーメッセージです。私のコードの一部から

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#" /> 

それは唯一の出力でなければなりません。

<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.:ここでの違いは、cfcontentに

2

で使用されているファイル属性は次の方法を試してみるべきだと思いますです実際にコードをテストしたことはありません。

+0

もちろん、変数を介してコンテンツを渡すことは避けることができますが、実際のアプリケーションでは一般的な方法です。 – Sergii

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を修正して、「編集」 - >「環境設定」の「カテゴリ:」で「インターネット」をクリックします。右側にチェックボックスが表示され、[ブラウザにPDFを表示]ラベルの場合、クリックされていることを確認します。

0

正しいだトリック

関連する問題