下面是一个工作正常的小片段,它显示了一个PDF文件,但只有我设置的最后一个图像。
我的代码有什么问题? 我没有找到ASP FPDF的文档,仅用于PHP。 任何帮助都是相关的。谢谢!
<%@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 :(得分:1)
在研究了一下之后,我得出的结论是,FPDF的ASP组件版本有一个导致这种行为的错误。
FPDF Library - PDF Generator网站论坛上有一个有趣的帖子 - [ASP] Pb avec PDF de 2 pages,它描述了你的确切问题和结论,他们发现FPDF组件的ASP版本有一个导致问题的错误。< / p>
也许如果你向我们展示你的作为提到的帖子中的OP fpdf.asp
包含文件,我们可以提供更多帮助,
“我解决了。我不知道怎么做,但我解决了。”
建议可以修复。
修改强>
我认为这可能就是您使用的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似乎没有任何用处。
在过去谈到Classic 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);
}