asp fpdf试图输出分配给变量的图像

时间:2010-06-10 18:22:32

标签: asp-classic fpdf

这是我用来在标题中显示图像的代码。我有的问题是我想为图像使用变量,当我把变量名称而不是图像名称时,我得到一个错误:

Microsoft JScript运行时错误“800a138f”

'undefined'为null或不是对象

/EKtestdb/fpdf/fpdf/includes/Basics.asp,第121行

    this.Header=function Header() 
  { 
  this.SetY (10) 
  this.SetFont ("Times","",10) 
  //this.Cell (45,5, "HEADER", 0, 0, "L") 
  this.SetFont ("Times","b",14) 
  //this.Cell (190,5, this.title, 0, 0, "C") 
  this.Cell (190,20, this.title, 0, 0) 
  this.SetFont ("Times","",10) 
  this.Image('logoSM1.jpg',165,3,33) 
  this.Image( techpic ,165,3,33)

这是basics.asp第121行的代码:

this.strrpos=function strrpos(s,ch){ 
 res = s.lastIndexOf(ch) 
 if (res>0-1){return res}else{return false} 
} 
this.strpos=function strpos(s,ch,start){ 
 if (arguments.length<3){start=0} 
 res = s.indexOf(ch,start); 
 if (res>-1){return res}else{return false} 
}

如果您只想显示图像,此行应该有效:

this.Image('logoSM1.jpg',165,3,33)

但是对于使用变量而不是图像名称,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我正在更新我的答案,因为我没有意识到你正在使用JScript和VBscript。您无需添加&lt;%=%&gt;因为你的所有代码都在&lt; %%&gt;在Jscript方面。

我不确定你为什么会遇到这个问题,但是看看你添加的代码我没看到LoadModels(),如果你使用的是vbscript页面,那么fpdf的文档说明你需要它。

http://www.aspxnet.it/public/Default.asp?page=174&idp=62

此外,我不确定这是否重要,但也许你可以添加一个开始和结束的单引号:

this.Image( "'" + techpic + "'" ,165,3,33);

我还注意到this.Header=function Header()下的所有代码都没有包含分号,这是JSCript所必需的。

答案 1 :(得分:0)

我遇到的问题是变量声明我不知道为什么但是我必须在pdf.asp文件的第一部分声明变量以在标题中输出变量。对于页脚中的输出,情况并非如此,我仍然不确定为什么这里是fpdf.asp代码的示例:

this.Header=function Header()
        {
        this.SetY (10);
        this.SetFont ("Times","b",14);
        this.Cell (190,20, this.title, 0, 0);
        this.SetFont ("Times","",10);
        //this.Image('logoSM1.jpg',165,3,33);
        this.Image( techpic2 ,165,3,33);
        }
    this.Footer=function Footer()
        {
        this.SetY (-15)
        this.SetFont ("Times","i",10)
        this.Cell (190, 5, "", 0, 1)
        this.Cell (190, 0, "", 1, 1)
        this.Cell (45, 5, EmployeeName + " - " + EmployeeNo, 0, 0, "L")
        this.Cell (100, 5, this.PageNo() + "/{nb}", 0, 0, "C")
        this.Cell (45, 5, "", 0, 0, "R")            
        }

在上面的代码中,页脚将检索EmployeeName的值并正确输出,但在标题中将不会检索techpic2的值。在techpic2上面的行中,此处成功显示的图像是pdf.asp代码的示例:

strSQL = "SELECT * FROM employee_course_vendortraining_view "  

objRS.Open strSQL, objConn

%>

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

<%

Set pdf=CreateJsObject("FPDF")

pdf.CreatePDF()

pdf.SetPath("fpdf/")

'------pdf.SetFont "Arial","",16

pdf.Open()

pdf.AddPage()


if (objRS.EOF) then

else

    Do Until objRS.EOF = True

    EmployeeNo = objRS("EmployeeNo")
    EmployeeName = objRS("EmployeeName")
     techpic2 = objRS("techpic2") 

这里的变量都是从记录集中分配的值,这个记录集用于从页脚输出,但不适用于标题。但是,一旦我在下面的示例中声明并设置变量,标题就会正确输出:

strSQL = "SELECT * FROM employee_course_vendortraining_view "  

    objRS.Open strSQL, objConn
Dim EmployeeName
    EmployeeName = objRS("EmployeeName")
Dim techpic2
    techpic2 = objRS("techpic2")
    %>

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

    <%

    Set pdf=CreateJsObject("FPDF")

    pdf.CreatePDF()

    pdf.SetPath("fpdf/")

为什么页脚可以读取变量而不是标题我仍然不确定为什么但如果其他人遇到问题可能会有所帮助。