2010-10-01 95 views
2

嗨 我試圖用下面的非常簡單的代碼使用ASPFPDF類來輸出圖像上的PDF:輸出圖像

<!--#include file="fpdf.asp"--> 
<% 
Dim pages 

Dim pdf 
Set pdf=CreateJsObject("FPDF") 

pdf.CreatePDF "P", "mm", "A4" 

pdf.SetPath "fpdf/" 

pdf.Open() 
pdf.AddPage("P") 

pdf.Image "invoiceheader.jpg" 
pdf.Output() 
%> 

運行時,這個腳本應該打開PDF但使用Adobe Reader,我得到一個「文件不以%pdf開頭」的消息。我嘗試過使用其他類似結果的閱讀器。

如果我刪除圖像行並輸出一些文本(例如pdf.Cell 40,5,「Date」,0,1,「R」),那麼一切正常。

在我生氣之前,任何人都有任何想法!

謝謝。

回答

0

上述問題的答案是,FPDF似乎需要在完全限定的域上 - 我在一臺機器上運行,使用自定義主機文件將URL指向開發服務器。一旦我將代碼移到活動服務器上,一切都奏效了!

我不完全理解爲什麼,但是這可能幫助別人......

1

我不知道AspFPdf,但是你不需要指定一個文件夾來找到圖像嗎? 你試過了嗎?正如我所說,我不知道組件,只是我的想法(儘管你自己已經嘗試過)。

[編輯]看看天冬氨酸FPDF的網站,看到文檔中的以下:

file 
Path or URL of the image. 

Asp fPdf : Image parameter

不管怎麼說:感謝您指出我在此組件的方向(儘管這不是你的意圖)。我也可以使用它;-)

+0

感謝您的幫助Edelcom - 我原本在圖片中指定了路徑,但現在已經將圖片移動到了相同的位置文件夾來嘗試並使其工作! – JezB 2010-10-04 09:12:24

+0

@jezB:你仍然必須能夠在這裏指定路徑。你在./或者\或服務器c:\ inetroot \ whatever \ images \ yourimage.gif的完整路徑上樹了嗎? – Edelcom 2010-10-05 03:08:24

0

我發現我可以添加圖片的唯一方法如下: -

pdf.Image」 ./ byimage.jpg「,x,y,寬度

1

只是想我會更新人,因爲我已經度過了許多年,終於得到了這個工作。由於隨機錯誤消息,您看不到的是FPDF應用程序在創建臨時PDF時創建臨時PDF。默認情況下,它會將它創建在與運行它的asp頁面相同的文件夾中。 例如我的網頁在我的網站根目錄\createpdf.asp

我發現它試圖在web根目錄下創建一個名爲D10456.tmp(每次更改名稱)的文件,但由於安全性原因無法啓動。

我添加了一個輸出文件名並在另一個文件夾中更改了安全性以允許寫入權限並且它第一次工作。

代碼輸出文件:

pdf.Output server.mappath("pdfs\list.pdf"),"F"  

PDF文件的文件夾必須具有寫訪問工作。 希望能幫助人們。 保羅的答案對於在ASP中添加圖像的格式也是正確的。 此外,我不得不更改位於包含目錄中的images.asp文件。 我不得不改變線路:

this.Buffer.LoadFromFile(Server.MapPath("\\") + ("\\") + ("Images") + ("\\") + pFileName); 

this.Buffer.LoadFromFile(Server.MapPath(pFileName)); 

,因爲它是在找錯了文件夾,我的圖片。

+0

也只是要添加 - 我不得不改變包含目錄中的images.asp文件中的一行。 – Adam 2011-12-03 10:12:21

2

嘗試這一個

pdf.Image "IMAGES/invoiceheader.jpg", 140, 22, 50, 40 

這裏140是的x位置22是y位置50是寬度和40是高度。

0

這是我如何管理才能顯示在ASP經典頁圖像:

pdf.Image 「FPDF/header.jpg」,10,10,80,20, 「JPG」

如果不是錯誤,這是如何定義變量(糾正我,如果我錯了):

pdf.image「folder/image.type」,x座標,y座標,img寬度,img高度,「圖像鍵入「

希望它有幫助。因爲我花了很多天才發現如何在我的asp經典頁面中顯示圖像。