Файл не начинается с «% PDF-» при включении изображения с использованием FPDF в Classic ASP - PullRequest
0 голосов
/ 24 октября 2011

Я застрял на этой проблеме некоторое время, сделал много поисков и пробовал различные решения, о которых, как сообщали другие, работали, и все же я все еще застрял. Так что любое предложение очень ценится. Пожалуйста, дайте мне знать, если я неясен. Большое спасибо заранее !!

Я пытаюсь сгенерировать PDF в Classic ASP (я знаю ....) с FPDF v.1.01 (доступно из http://www.aspxnet.it/public/Default.asp?page=172). Но я продолжаю получать сообщение "Файл не начинается с"% 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 нет.

Ответы [ 2 ]

1 голос
/ 23 августа 2012

Я не уверен, если вы еще не решили проблему, но в любом случае я отвечу, потому что это может помочь кому-то еще.

У меня была такая же проблема, и я долго просматривал и искалвремя для решения.

Наконец я нашел решение.Зайдите в файл fpdf.asp, найдите строку с кодом:

xfile=Server.MapPath(lib.fso.GetTempName())

Вы можете изменить код, например, так:

xfile=Server.MapPath("Temp/"+lib.fso.GetTempName())

где "Temp /" - это имя папки, гдевременный файл во время генерации файла PDF будет создан и позже удален.Основной трюк заключается в назначении прав доступа «Изменить» для папки Temp.

Появляется ошибка «Файл не начинается с«% PDF- »), поскольку нет прав доступа для создания, а затем удаления временных файлов.для вашего окончательного файла PDF.Таким образом, у вас есть возможность назначить право доступа «Изменить» вашей корневой папке или перенести временные файлы для PDF в папку Temp и назначить «Изменить» только для папки Temp (это более безопасно).

0 голосов
/ 24 октября 2011

попробуйте с <%@LANGUAGE="javascript" %> insted из <%@LANGUAGE="javascript" CODEPAGE="65001"%>

Просто нужно удалить CODEPAGE="65001"

...