【问题标题】:asp fpdf trying to output a image assigned to a variableasp fpdf试图输出分配给变量的图像
【发布时间】:2010-06-12 00:33:20
【问题描述】:

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

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)

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

【问题讨论】:

    标签: asp-classic fpdf


    【解决方案1】:

    我正在更新我的答案,因为我没有意识到您同时使用 JScript 和 VBscript。您不需要添加 因为您的所有代码都已经在 J​​script 端的 中。

    我不确定您遇到问题的原因,但查看您添加的代码,我没有看到 LoadModels(),fpdf 的文档说如果您使用的是 vbscript 页面,您需要它。

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

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

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

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

    【讨论】:

    • 我无法让它工作 是的,该变量是一个 ASP 变量,我尝试了上面的代码,但它不起作用它给了我消息:FPDF 错误:图像文件没有扩展名并且没有类型已指定:这是一个 asp 代码示例,如果您需要查看更多信息,请告诉我: S​​et pdf=CreateJsObject("FPDF") pdf.CreatePDF() pdf.SetPath("fpdf/") '---- --pdf.SetFont "Arial","",16 pdf.Open() pdf.AddPage() Dim techpic techpic = "logoSM1.jpg" if (objRS.EOF) then else Do until objRS.EOF = True EmployeeNo = objRS (“员工编号”)
    • @bluffo 我更新了我的答案,因为我以为你在混合 javascript 和 vbscript,但它实际上是 JScript,所以你不需要 。
    • 我注意到也没有分号,我添加了它们并且没有图像加载速度更快,但这次我仍然无法让图像工作错误消息不同:FPDF 错误:图像文件没有扩展名,也没有指定类型:'undefined' 如果您需要帮助我可以发布更多代码示例,我试图在另一个论坛上发布这个问题,他们说我使用了错误的论坛。 Microsoft JScript 运行时错误“800a138f”“未定义”为空或不是对象 /EKtestdb/fpdf/fpdf/includes/Basics.asp,第 121 行
    • @bluffo 这有点像在黑暗中拍摄,但试试 this.Image( eval(techpic) ,165,3,33) 或 this.Image( eval('techpic') ,165 ,3,33)
    • 好吧,我终于搞定了,问题出在我的 Dim techpic 声明中,出于某种原因,我不得不将它移到 select 之前的第一个 asp 部分,而变量 = objRS 我不确定为什么,但在至少它现在有效。感谢 Waleed 的回复,您帮助我解决了问题,我希望这对您有帮助。
    【解决方案2】:

    我遇到的问题是变量声明,我不知道为什么,但我必须在 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/")
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2014-07-26
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 2012-12-12
      相关资源
      最近更新 更多