Bonjour,

Je voudrai pouvoir insérer une image dans un document PDF. Avec le code suivant, cela fonctionne parfaitement :

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>
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 = "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>
On oublie la boite de dialogue qui va chercher l'image et on passe directement l'url en parametre du constructeur URLRequest.

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.