Bonjour,
Je voudrai pouvoir insérer une image dans un document PDF. Avec le code suivant, cela fonctionne parfaitement :
Seulement voila, ce que je voudrai, c'est mettre l'url de mon image directement dans le code comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <fx:Script> <![CDATA[ import org.alivepdf.pdf.PDF; import org.alivepdf.saving.Method; private var fileToOpen:File = File.documentsDirectory; protected function btn_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub fileToOpen.browseForOpen("Ouvrir une image"); fileToOpen.addEventListener(Event.SELECT, ouvrirImage); } private function ouvrirImage(evt:Event):void { var chargeur:Loader = new Loader(); var url:String = evt.currentTarget.nativePath; trace(url); chargeur.load(new URLRequest(url)); trace(evt.currentTarget.nativePath); chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, continu); //var image:DisplayObject = plLdr.content as DisplayObject; } private function continu(evt:Event):void { var target:LoaderInfo = evt.target as LoaderInfo; var image:DisplayObject = target.content as DisplayObject; var monPdf:PDF = new PDF("Portrait"); monPdf.addPage(); //monPdf.curveTo(120, 110, 45, 50, 78, 89); monPdf.drawCircle(70, 70, 30); monPdf.drawEllipse(100, 100, 20, 30); monPdf.drawRect(new Rectangle(120, 150, 70, 50)); monPdf.addCell(1, 1, "Ceci est une première cellule"); monPdf.addPage(); monPdf.addText("Ceci est une insertion de texte dont les coordonnées x et y sont 10 et 5", 10, 5); monPdf.addImage(image, null, 50, 50, 100, 100); var file:File = File.desktopDirectory; var bytes:ByteArray= monPdf.save(Method.LOCAL); file.save(bytes, ".pdf"); } ]]> </fx:Script>
On oublie la boite de dialogue qui va chercher l'image et on passe directement l'url en parametre du constructeur URLRequest.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <fx:Script> <![CDATA[ import org.alivepdf.pdf.PDF; import org.alivepdf.saving.Method; private var fileToOpen:File = File.documentsDirectory; /*protected function btn_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub fileToOpen.browseForOpen("Ouvrir une image"); fileToOpen.addEventListener(Event.SELECT, ouvrirImage); }*/ private function ouvrirImage(evt:Event):void { var chargeur:Loader = new Loader(); var url:String = "C:\Users\PORTABLENICO\Pictures\chevron_closeup_1280_1024.jpg"; trace(url); chargeur.load(new URLRequest(url)); //trace(evt.currentTarget.nativePath); chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, continu); //var image:DisplayObject = plLdr.content as DisplayObject; } private function continu(evt:Event):void { var target:LoaderInfo = evt.target as LoaderInfo; var image:DisplayObject = target.content as DisplayObject; var monPdf:PDF = new PDF("Portrait"); monPdf.addPage(); //monPdf.curveTo(120, 110, 45, 50, 78, 89); monPdf.drawCircle(70, 70, 30); monPdf.drawEllipse(100, 100, 20, 30); monPdf.drawRect(new Rectangle(120, 150, 70, 50)); monPdf.addCell(1, 1, "Ceci est une première cellule"); monPdf.addPage(); monPdf.addText("Ceci est une insertion de texte dont les coordonnées x et y sont 10 et 5", 10, 5); monPdf.addImage(image, null, 50, 50, 100, 100); var file:File = File.desktopDirectory; var bytes:ByteArray= monPdf.save(Method.LOCAL); file.save(bytes, ".pdf"); } ]]> </fx:Script>
Mais si je fais comme ça, ça me dit "URL not found". Quelqu'un peut-il me dire quelle est la différence entre les deux cas par rapport à mon url et si possible m'expliquer comment je pourrai mettre en application mon second code ?
Merci.
Partager