Вывод изображений в ASP FPDF проблема - PullRequest
2 голосов
/ 01 октября 2010

Привет! Я пытаюсь использовать класс ASPFPDF для вывода изображения в формате PDF, используя очень простой код, приведенный ниже:

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

 Dim pdf
 Set pdf=CreateJsObject("FPDF")

 pdf.CreatePDF "P", "mm", "A4"

 pdf.SetPath "fpdf/"

 pdf.Open()
 pdf.AddPage("P")

 pdf.Image "invoiceheader.jpg"
 pdf.Output ()
%>

При запуске этот сценарий должен открывать файл PDF, но с помощью Adobe Reader Iполучить сообщение «Файл не начинается с% pdf».Я пытался использовать другие читатели с похожими результатами.

Если я удалю строку изображения и выведу какой-нибудь текст (например, pdf.Cell 40,5, "Date", 0,1, "R"), всеработает отлично.

У кого-нибудь есть идеи, прежде чем я сойду с ума!

Спасибо.

Ответы [ 6 ]

2 голосов
/ 28 мая 2012

Попробуйте это

pdf.Image "IMAGES/invoiceheader.jpg", 140, 22, 50, 40

Здесь 140 это позиция x, 22 это позиция y 50 это ширина и 40 это высота.

1 голос
/ 03 декабря 2011

Просто подумал, что буду обновлять людей, потому что я провел целую вечность и наконец получил эту работу.Из-за случайных сообщений об ошибках вы не видите, что приложение FPDF создает временный PDF-файл при его создании.По умолчанию он будет создан в той же папке, что и ваша страница asp, на которой он запущен.Например, моя страница была в моем веб-корне \createpdf.asp

Я выяснил, что она пыталась создать файл с именем D10456.tmp (имя меняется каждый раз) в моем веб-корне, но это не удалось из-за безопасности.

Я добавил имя выходного файла и изменил защиту в другой папке, чтобы разрешить запись, и это сработало в первый раз.

Код для выходного файла:

  pdf.Output server.mappath("pdfs\list.pdf"),"F"    

Папка PDFS должна иметь право записи для работы.Надеюсь, что это помогает людям.Ответ Павла также подходит для формата добавления изображения в ASP.Также мне пришлось изменить файл images.asp, который находится в каталоге include.Мне пришлось изменить строку:

this.Buffer.LoadFromFile(Server.MapPath("\\") + ("\\") + ("Images") + ("\\") + pFileName);

на

this.Buffer.LoadFromFile(Server.MapPath(pFileName));

, потому что она искала не в ту папку для моих изображений.

1 голос
/ 03 октября 2010

Я не знаю AspFPdf, но вам не нужно указывать папку, в которой находится изображение? Вы пробовали?

pdf.Image "fpdf/invoiceheader.jpg"

Как я уже сказал, я не знаю компонент, только мои мысли (хотя вы, вероятно, попробовали это самостоятельно).

[EDIT] Посмотрите на веб-сайт Asp Fpdf и увидел следующее в документации:

file 
Path or URL of the image. 

Asp fPdf: параметр изображения

В любом случае: спасибо, что указали мне в направлении этого компонента (хотя это не было вашим намерением). Я тоже могу это использовать; -)

0 голосов
/ 13 апреля 2015

Вот как мне удается отобразить свое изображение на классической странице ASP:

pdf.Image "fpdf / header.jpg", 10, 10,80,20, "jpg"

если не ошибки, вот как определить переменные (поправьте меня, если я ошибаюсь):

pdf.image "folder / image.type", координата x, координата y, ширина img, высота img, "тип изображения"

надеюсь, это поможет. потому что я потратил много дней, просто чтобы найти способ показать изображение на моей классической странице asp ..

0 голосов
/ 12 апреля 2011

Я обнаружил, что единственный способ добавить изображения был следующим: -

pdf.Image "./byimage.jpg",x,y,width

0 голосов
/ 07 октября 2010

Ответ на поставленный выше вопрос заключается в том, что FPDF, по-видимому, должен находиться в полностью определенном домене - я работал на машине с использованием специального файла hosts, чтобы указать URL-адрес на сервере разработки.Как только я переместил код на работающий сервер, все заработало!

Я не до конца понимаю, почему, но это может помочь кому-то еще ...

...