2014-02-27 79 views
1

下面是一個很好的小片段,它顯示了我一個PDF文件,但只有最後一張圖像。FPDF不能顯示多個圖像

我的代碼有什麼問題? 我沒有找到ASP FPDF的文檔,僅適用於PHP。 任何幫助是apreciated。謝謝!

<%@language=vbscript%> 
<!--#include file="fpdf.asp"--> 
<%Response.ContentType="application/pdf"%> 

<% 
imgCat = "..\fc_img\cat.jpg" 
imgDog = "..\fc_img\dog.jpg" 
Set pdf=CreateJsObject("FPDF") 
pdf.CreatePDF "L", "mm", "A4" 
pdf.SetPath("fpdf/") 
pdf.Open() 

pdf.AddPage() 

pdf.SetTitle "Life is a b1tch" 
pdf.Image imgDog , 10, 10, 20, 20 
pdf.Image imgCat , 40, 40, 20, 20 

pdf.Close() 
pdf.Output() 
%> 
+0

如果你在圖片調用之間調用AddPage,你會得到兩個圖片嗎? – safetyOtter

+0

@safetyOtter,我在每個頁面上都會看到一個圖像,因爲AddPage會添加另一個頁面 –

回答

1

經過研究,我得出結論,ASP組件版本的FPDF有一個導致這種行爲的錯誤。

FPDF Library - PDF Generator網站論壇上有一個有趣的線索 - [ASP] Pb avec PDF de 2 pages它描述了你確切的問題和結論他們來到的是ASP版本的FPDF組件有一個導致問題的錯誤。

或許,如果你告訴我們,你的 fpdf.asp包括文件,我們也許能幫助更多的, 作爲線程OP提到

「我解決了這個問題。我不知道怎麼回事,但我解決了它。「

表明可以修復。


編輯:

我想這也許是你使用的是什麼ASP FPDF這是超過10年以上的老似乎並沒有得以維持。

/**************************************************************************** 
*                   * 
* Software    : FPDF for Asp          * 
* Version    : 1.01 beta           * 
* Date     : 2003/11/15          * 
* Author    : Lorenzo Abbati         * 
* License    : Freeware           * 
* Site     : http://www.aspxnet.it        * 
*                   * 
***************************************************************************** 
*                   * 
* Author (PHP Class) : Olivier Plathey         * 
* Site (PHP Class)  : http://www.fpdf.org        * 
*                   * 
***************************************************************************** 
*                   * 
* You may use and modify this software as you wish.       * 
*                   * 
****************************************************************************/ 

最新下載似乎v1.01

引用的網站http://www.aspxnet.it似乎並不具有任何有用的東西。


在過去,當涉及到傳統的ASP我發現AspPDF by Persits Software inc動態生成PDF文件時,是非常寶貴的。它不像ASP FPDF那樣是免費的,但它確實有效並且不斷更新和支持。可能值得一看,而不是試圖挖掘fpdf.asp找到.Image錯誤的原因。


更新:

認爲這個問題是與this._out和緩衝的構建方式,因爲這將解釋爲什麼一個圖像輸出,另一種是沒有的。例如,如果緩衝區得到重置。不幸的是,解決這個問題的唯一方法是挖掘源代碼。

this.Image=function Image(xfile , xx , xy , xw , xh , xtype , xlink) 
{ 
    if (arguments.length<5){xh=0}; 
    if (arguments.length<6){xtype=""}; 
    if (arguments.length<7){xlink=""}; 

    if(!lib.isset(this.images[xfile])) 
    { 
    if(xtype=="") 
    { 
     xpos=lib.strrpos(xfile,"."); 
     if(!xpos)this.Error("Image file has no extension and no type was specified: " + xfile); 
     xtype=lib.substr(xfile,xpos+1); 
    } 
    xtype=xtype.toLowerCase(); 
    if(xtype=="jpg" || xtype=="jpeg") xinfo=this._parsejpg(xfile); 
    else this.Error("Unsupported image file type: " + xtype); 

    xinfo["i"]=lib.count(this.images)+1; 
    this.images[xfile]=xinfo; 
    } 
    else 
    xinfo=this.images[xfile]; 

    if(xw==0)xw=xh*xinfo["w"]/xinfo["h"]; 
    if(xh==0)xh=xw*xinfo["h"]/xinfo["w"]; 

    this._out(lib.sprintf("q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q",xw*this.k,xh*this.k,xx*this.k,(this.h-(xy+xh))*this.k,xinfo["i"])); 
    if(xlink)this.Link(xx,xy,xw,xh,xlink); 
} 
+0

我不會再遇到這個問題,但是如果有一天我會回到它,我會試試這個。謝謝 –