ASP FPDF 中输出图像问题

问题描述 投票:0回答:7

嗨 我正在尝试使用 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 我收到一条“文件不以 %pdf 开头”消息。我尝试使用其他阅读器获得类似的结果。

如果我删除图像行并输出一些文本(例如 pdf.Cell 40,5,"Date",0,1,"R"),一切都会完美运行。

在我发疯之前,任何人有任何想法!

谢谢你。

asp-classic fpdf
7个回答
2
投票

试试这个

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

这里

140
是 x 位置,
22
是 y 位置
50
是宽度,
40
是高度。


1
投票

我不知道AspFPdf,但是你不需要指定要找到图像的文件夹吗? 你尝试了吗?

pdf.Image "fpdf/invoiceheader.jpg"

正如我所说,我不知道该组件,只是我的想法(尽管您自己可能已经尝试过)。

[编辑]查看Asp Fpdf的网站并在文档中看到以下内容:

file 
Path or URL of the image. 

Asp fPdf:图像参数

无论如何:感谢您为我指明了该组件的方向(尽管这不是您的意图)。我也可以用这个;-)


1
投票

我只是想向人们通报最新情况,因为我花了很长时间终于完成了这项工作。由于随机错误消息,您看不到的是 FPDF 应用程序在构建时创建了一个临时 PDF。默认情况下,它将在运行它的 asp 页面所在的同一文件夹中创建它。 例如我的页面位于我的网络根目录中

\createpdf.asp

我发现它试图在我的网络根目录中创建一个名为

D10456.tmp
的文件(名称每次都会更改),但由于安全原因无法创建。

我添加了一个输出文件名并更改了另一个文件夹中的安全性以允许写入访问,并且它第一次工作。

输出文件代码:

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

PDFS 文件夹必须具有写入权限才能工作。 希望能帮助人们。 Paul的回答对于在ASP中添加图像的格式也是正确的。 另外,我必须更改位于包含目录中的

images.asp
文件。 我不得不改变路线:

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

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

因为它在错误的文件夹中查找我的图像。


0
投票

上述问题的答案是,FPDF 似乎需要位于完全限定的域上 - 我在一台机器上运行,使用自定义主机文件将 URL 指向开发服务器。当我将代码移至实时服务器后,一切正常!

我不完全明白为什么,但这可能对其他人有帮助......


0
投票

我发现添加图像的唯一方法如下:-

pdf.Image "./byimage.jpg",x,y,宽度


0
投票

这就是我如何在 ASP 经典页面中显示我的图像:

pdf.图片 "fpdf/header.jpg", 10, 10,80,20, "jpg"

如果没有错误,这就是如何定义变量(如果我错了,请纠正我):

pdf.image“文件夹/图像.类型”,x坐标,y坐标,img宽度,img高度,“图像类型”

希望有帮助。因为我花了很多天才找到如何在我的asp经典页面中显示图像..


0
投票

我研究了几次fpdf.asp,从我的实验中,我发现fpdf确实需要图像放置的x和y坐标。

尝试添加 pdf.SetXY 10、10 或其他数字 这样就变成:

<!--#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.SetXY 10, 10
pdf.Image "invoiceheader.jpg"
pdf.Output ()
%>

(抱歉我不知道这是2010年的问题,呵呵)

© www.soinside.com 2019 - 2024. All rights reserved.