2010-10-01 10 views
2

Salut Je tente d'utiliser la classe ASPFPDF pour produire une image sur un pdf en utilisant le code très simple ci-dessous:sortir des images en problème ASP FPDF

<!--#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() 
%> 

Lors de l'exécution, ce script devrait ouvrir le pdf mais avec Adobe Reader, je reçois un message "Le fichier ne commence pas avec% pdf". J'ai essayé d'utiliser d'autres lecteurs avec des résultats similaires.

Si je supprime la ligne d'image et affiche du texte (par exemple pdf.Cell 40,5, "Date", 0,1, "R"), tout fonctionne parfaitement.

N'importe qui a eu des idées avant de devenir fou!

Merci.

Répondre

0

La réponse à la question ci-dessus est que le FPDF semble avoir besoin d'être sur un domaine pleinement qualifié - je fonctionnais sur une machine avec un fichier hosts personnalisé pour pointer l'URL à le serveur de développement. Dès que j'ai déplacé le code sur le serveur live, tout a fonctionné!

Je ne comprends pas très bien pourquoi, mais cela pourrait aider quelqu'un d'autre ...

1

Je ne connais pas ASPFPdf, mais n'avez-vous pas besoin de spécifier un dossier où l'image doit être trouvée? Avez-vous essayé?

pdf.Image "fpdf/invoiceheader.jpg" 

Comme je l'ai dit, je ne sais pas le composant, à mes pensées (bien que vous avez essayé propably vous-même).

[EDIT] Regardez le site de Asp fpdf et vu ce qui suit dans la documentation:

file 
Path or URL of the image. 

Asp fPdf : Image parameter

Quoi qu'il en soit: merci de me pointant dans la direction de ce composant (même si cela n'était pas votre intention). Je peux l'utiliser aussi ;-)

+0

Merci pour votre aide Edelcom - J'ai initialement le chemin spécifié dans l'image, mais ai maintenant déplacé l'image vers le même dossier pour essayer de le faire fonctionner! – JezB

+0

@jezB: Encore faut-il pouvoir spécifier ici le chemin. Avez-vous arboré le ./ ou. \ Ou le chemin complet sur le serveur c: \ inetroot \ whatever \ images \ yourimage.gif? – Edelcom

0

Je trouve que la seule façon que je pourrais ajouter des images est la suivante: -

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

1

Juste pensé que je mettrais à jour les gens comme j'ai passé des siècles et que j'ai enfin réussi à le faire fonctionner. Ce que vous ne voyez pas en raison de messages d'erreur aléatoires, c'est que l'application FPDF crée un fichier PDF temporaire au fur et à mesure de son développement. Par défaut, il va le créer dans le même dossier que votre page ASP qui l'exécute. par exemple. Ma page était dans ma racine Web

J'ai calculé qu'il essayait de créer un fichier appelé D10456.tmp (le nom change à chaque fois) dans ma racine web mais il ne pouvait pas en raison de la sécurité.

J'ai ajouté un nom de fichier de sortie et changé la sécurité dans un autre dossier pour permettre l'accès en écriture et cela a fonctionné la première fois.

code

pour le fichier de sortie:

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

Le dossier PDFS doit avoir accès en écriture à travailler. Un espoir qui aide les gens. La réponse de Paul est également correcte pour le format d'ajout d'une image dans ASP. En outre, j'ai dû changer le fichier images.asp qui se trouve dans le répertoire inclus. je devais changer la ligne:

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

à

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

parce qu'il était à la recherche dans le mauvais dossier pour mes images.

+0

Aussi juste pour ajouter - j'ai dû changer une ligne dans le fichier images.asp qui se trouve dans le répertoire includes. – Adam

2

essayer celui-ci

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

Ici 140 est la position x, y 22 est la position 50 est la largeur et la hauteur est 40.

0

Voilà comment je parviens à afficher mon image dans la page ASP classique:

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

sinon erreurs, voici comment définir les variables (corrigez-moi si je me trompe):

pdf.image "folder/image.type", coordonnée x, coordonnée y, largeur img, hauteur img, "image tapez "

espérons que cela aide. parce que j'ai passé plusieurs jours juste pour trouver comment afficher l'image dans ma page classique d'asp ..