我一直坚持这个问题一段时间,做了很多搜索并尝试了其他人报告工作的各种解决方案,但我仍然陷入困境。所以任何建议都非常感谢。如果我不清楚,请告诉我。非常感谢提前!!
我正在尝试使用FPDF v.1.01(可从http://www.aspxnet.it/public/Default.asp?page=172获得)在Classic ASP(我知道....)中生成PDF。但是当我填充PDF时,我不断收到消息“文件不以'%PDF-'开头”。我在Firefox 7.0.1,IE9中试过这个,这是我们在工作中使用的两个浏览器。如果我从代码中删除此行,那么一切都按预期工作。所以我所知道的是这条线是麻烦制造者(也许?)
this.Image('bg_logo_small.jpg',10,8,213,46);
我有一个名为report.asp的文件。文件的组织如下所示:
./rpt/report.asp
./rpt/fpdf.asp
./rpt/bg_logo_small.jpg
./rpt/fpdf/ - this directory contains all the files extracted from fpdf1.01.zip
./rpt/fpdf/extends/
./rpt/fpdf/fonts/
./rpt/fpdf/includes/
./rpt/fpdf/models/
和report.asp看起来像这样,这几乎直接来自aspxnet.it网站上的示例,除了我正在使用自己的jpg:
<%@LANGUAGE="javascript" CODEPAGE="65001"%>
<!--#include file="fpdf.asp" -->
<%
var pdf=new FPDF();
pdf.Header=function Header()
{
this.Image('bg_logo_small.jpg',10,8,213,46);
this.SetFont('Arial','B',15);
this.Cell(80);
this.Cell(30,10,'Title',1,0,'C');
this.Ln(20);
}
pdf.Footer=function Footer()
{
this.SetY(-15);
this.SetFont('Arial','I',8);
this.Cell(0,10,'Page '+ this.PageNo()+ '/{nb}',0,0,'C');
}
pdf.CreatePDF();
pdf.SetPath("fpdf/");
pdf.SetFont("Arial","",16);
pdf.Open();
pdf.AddPage();
pdf.Cell(40,10,"Hello Word!");
pdf.Close();
pdf.Output();
%>
我在VBScript中用
尝试了同样的事情pdf.LoadModels("bgimg")
和函数Header()和函数Footer()放在bgimg.mod中,保存在
中./rpt/fpdf/models/
上面的代码都是report.asp包含 - 里面没有HTML。
答案 0 :(得分:1)
我不确定,如果你还没有解决问题,但无论如何我回答,因为它可以帮助其他人。
我遇到了同样的问题,我正在浏览并长时间寻找解决方案。
最后我找到了解决方案。 进入fpdf.asp文件,查找代码行:
xfile=Server.MapPath(lib.fso.GetTempName())
您可以更改代码,例如像这样:
xfile=Server.MapPath("Temp/"+lib.fso.GetTempName())
其中“Temp /”是创建PDF文件期间临时文件并稍后删除的文件夹名称。主要技巧是为文件夹Temp。
分配“修改”访问权限出现错误“文件不以'%PDF-'开头”,因为没有访问权限来创建然后删除最终PDF文件的临时文件。因此,您可以选择将“修改”访问权限分配给根文件夹,或者在文件夹Temp中传输PDF的临时文件,并仅将“修改”分配给文件夹Temp(这样更安全)。
答案 1 :(得分:0)
尝试使用<%@LANGUAGE="javascript" %>
而不是<%@LANGUAGE="javascript" CODEPAGE="65001"%>
只需删除CODEPAGE="65001"