Libre Office Draw : assembler des fichiers images en un seul fichier PDF

Installation, configuration et utilisation des logiciels que vous souhaitez installer.
Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Dernier message de la page précédente :

La macro est en language basic destiné exclusivement à Libre Office Draw; il ne fonctionnera pas sur le terminal. Voilà ce que je te propose; il faut déja réfléchir à ce dont tu as besoin.
Si tu peux répondre à ces quelques questions, je pourrai t'aider à faire quelque chose de vraiment sympa...
1. Le nombre de tes images est-il défini à l'avance?
2. Les images doivent-elles suivrent un ordre particulier?
3. Ou sont stockées ces images? en vrac ou dans un dossier spécifique au projet?

Pour utiliser les macros il faut baisser le niveau de sécurité de Libre Office:
Outils>Options>LibreOffice>(à droite) clic sur sécurité des macros. Choisir "Moyen" et valider par OK
Voici comment enregistrer la macro:
1.ouvres un document Libre Office Draw et enregistres le
2.vas dans le menu Outils>Macros>Gérer les macros>Libre Office Basic (la tu clic dessus)
3.Une boite de dialogue intitulé "Macros Libre Office Basic" s'ouvre:
>A gauche, la partie du bas il y a un encart nommé "Macro de". Il y a une liste avec au moins déja "Mes macros","macros libre office" et ton document.
>On va héberger la macro dans Libre Office pour que tu puisses faire appel à elle depuis n'importe quel document.
>>Clic sur "Mes macros" puis sur "Standard" et enfin sur la droite de cette boite de dialogue, clic sur le bouton "nouveau". Cela te demande un nom, mets par exemple "Générer du Pdf".
4. La normalement, une nouvelle fenêtre s'ouvre c'est en fait un sous programme appellé "EDI" qui gère les macros basic entre autres. La plus grande partie du programme est située à droite et c'est là que tu vas effacer ce qu'il y a dedans pour y copier le code que je t'ai fourni avant. As-tu toujours des problèmes pour voir mes screens?
L'EDI une fois la macro copiée, collée
Image
La tu fais sur le menu "Fichier" de l'EDI tu enregistres et tu fermes l'EDI; la macro est enregistrée sur Libre Office et tu pourras faire appel à elle depuis n'importe quel document.

Si déja tu arrives à çà c'est un bon pas de fait crois-moi. Si tu n'y arrives pas, on reprendra là où tu coinces par ce que çà çà sera le béaba
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Salut tiogran,

Pour répondre à tes questions :

1. Non, mon nombre d'images n'est pas défini à l'avance, il varie souvent
2. Oui, un ordre particulier, celui dans lequel elles sont placées dans le dossier qui les contient. Par exemple, si j'ai 3 images, je les classe en les nommant comme ceci : A1 A2 A3
Dans le PDF créé, il faut donc que les pages défilent selon la même logique.
3. Ces images peuvent être stockées dans plusieurs endroits en fonction de leur nature : factures, photos selon leur thème, documents administratifs... La plupart du temps, elles se trouvent dans un volume crypté qui est bien sûr monté.

;) :)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Salut linuxing
Linuxing a écrit : 2. Oui, un ordre particulier, celui dans lequel elles sont placées dans le dossier qui les contient. Par exemple, si j'ai 3 images, je les classe en les nommant comme ceci : A1 A2 A3
Dans le PDF créé, il faut donc que les pages défilent selon la même logique.
Ok que la dénomination des images soient normalisées c'est une très très bonne chose. X images, Xpages; clairement dans ta situation c'est le nombre d'images qui va définir le nombre de pages et même que l'image X soit mise dans la Page X c'est jouable? Un exemple cependant imaginons l'image "A1" va-t-elle obligatoirement sur la page 1 ou sera-t-elle sur la deux ou la trois?
Linuxing a écrit :3. Ces images peuvent être stockées dans plusieurs endroits en fonction de leur nature : factures, photos selon leur thème, documents administratifs... La plupart du temps, elles se trouvent dans un volume crypté qui est bien sûr monté.
Aie c'est dommage çà... N'y-a-t-il pas moyens au moins le temps de la génération du document qu'il soient tous dans le même dossier.

Par ce qu'en modifiant un peu modifiant un peu ta procédure, on peut imaginer le scénario suivant:
Tu mets les images dans un dossier unique avec un nomination normalisée.
On lance une macro qui récupère le nombre d'images, crée un nombre de pages en conséquence et la cerise sur le gateau les mets à la bonne place. Le top serait que tu définisses le nom de document PDF à l'avance en nommant de ce nom le dossier qui contient les images. La macro récupère le nom du dossier et l'applique au PDF comme titre du document.
Ensuite concernant le visionneur de document PDF, normalement ce type de lecteur offre des "entrées" qui permettent de configurer par programmation CHACUNES des options du programme (affichage, type de protection tout!!) et là tu définis si le document s'ouvre à 50%, 100% avec menus ou sans menus etc...

Qu'en pense-tu?
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Salut tiogran,

Tu m'écris :

«Ok que la dénomination des images soient normalisées c'est une très très bonne chose. X images, Xpages; clairement dans ta situation c'est le nombre d'images qui va définir le nombre de pages et même que l'image X soit mise dans la Page X c'est jouable? Un exemple cependant imaginons l'image "A1" va-t-elle obligatoirement sur la page 1 ou sera-t-elle sur la deux ou la trois?»

Oui, A1 va sur la première page ; A2 sur la deuxième ; A3 sur la troisième.......

Tu m'écris :

«Aie c'est dommage çà... N'y-a-t-il pas moyens au moins le temps de la génération du document qu'il soient tous dans le même dossier.»

Oui, bien sûr, il suffit d'en convenir pour la génération du document PDF, ce qui me permet de le déplacer ensuite ailleurs ; on peut décider de placer le dossier en question dans home, par exemple ? En fait, lorsque je disais que les images pouvaient être dans des endroits différents, je voulais dire que le dossier les contenant toutes pouvait se trouver dans des répertoires variés selon le cas : Gestion, Images... Mais toutes les images sont contenues dans une seule «pochette» et pour la facilité de l'opération on peut éventuellement la mettre dans home, quitte à ce que je la replace ensuite dans le répertoire choisi 8-)

:) ;)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Bon ben niquel, je suis en train de préparer çà, ca va prendre un peu de temps... En gros je vais tout faire car tu pourras pas en quelques heures apprendre tout ce dont tu as besoin mais si tu es motivé voici une bonne doc.
https://www.openoffice.org/fr/Documenta ... _basic.pdf ne cherches pas forcément à comprendre le script d'une macro mais plus comment acceder au menu permettant d'en écrire

Edit quelques heures plus tard...
Voilà j'ai pas mal avancé. A ce stade, tu mets le fichier Draw dans un repertoire contenant les images et quelques soit le nombre d'images si tu respectes bien la dénomination des images (A1 A2 etc) ca devrait déja te créer le document Draw avec X diapos et X images...

Code : Tout sélectionner

REM  *****  BASIC  *****
REM Ce travail est largement inspiré des travaux de M MARCELLY et M GODARD dans leur ouvrage "Programmation OpenOffice.org et LibreOffice"

Sub Main
	Dim doc, lesPages, unePage as object
	Dim url_folder as string
	Dim nImages, x as integer
	doc = thiscomponent
	url_folder = getDirectory(doc.URL)
	nImages = RecupererNombreFichiers(url_folder)
	lesPages = doc.drawpages 'c'est la collection des diapos du document
	'La première diapo est créée par défaut, il faut donc la traiter en priorité
	unePage = lesPages.getbyindex(0)
	unePage.Name = "Page 1"
	InsererUneImageDansPage(doc, unePage, url_folder, 0)
	'on lance une boucle qui va se répéter autant de fois qu'il y a de diapo
	For x = 1 to nImages-1' car la première est indexée à 0 (0 étant le premier index en programmation)
		lesPages.InsertNewByIndex(x)
		unePage = lesPages.getbyindex(x)
		unePage.Name = "Page " & x
		InsererUneImageDansPage(doc, unePage, url_folder, x)'L'insertion d'une image est une procédure plutot complexe c'est pourquoi elle est traitée dans un sous programme
		'ainsi si nous devons modifier les parametres à appliquer, la clarté du programme s'en trouvera améliorée.
	Next
End Sub

Function RecupererNombreFichiers(url_folder)
	Dim f2 as string
	Dim x as long
	x = 0
	f2 = Dir(url_folder & "*", 0)
	Do while Len(f2) > 0
		f2 = Dir
		x=x+1
	Loop
	Msgbox("nbre total de fichiers sans compté le document lançeur = " & x)
	RecupererNombreFichiers = x-2 'les fichiers images = nbre total de fichiers - doc lanceur - fichier .lock
End function

Sub InsererUneImageDansPage(doc, unePage, url_folder, x)
	Dim lImage, gp as object
	Dim props(0) as New com.sun.star.beans.PropertyValue'attention à la casse!!!
	gp = createUnoservice("com.sun.star.graphic.GraphicProvider")'attention à la casse!!!
	'on définit l'adresse de l'image
	props(0).Name = "URL"'attention à la casse!!!
	props(0).Value = convertToURL(url_folder & "A" & x+1)'car A1 est l'image de la page index 0 (rappel ;)), Y A T IL UN SUFFIXE A TON IMAGE (ex .png ou .jpeg)??????
	lImage = doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
	lImage.Graphic = gp.queryGraphic(props())
	unePage.add(lImage)
	resizeImageByWidth(lImage, 11000) 'les parametres suivant sont ajustable au 1/100 de mm
	positionImage.x = 6500
	positionImage.y = 5300
	lImage.Position = positionImage
	lImage.Name = "image" & x+1
End Sub

Function getDirectory(URLPath As String) As String
REM Cette fonction est la copie exacte du travail de M Marcelly et de M Godard dans leur ouvrage "Programmation OpenOffice.org et LibreOffice"
	Dim parts As Variant
	parts = split(URLPath, "/")
	parts(UBound(parts())) = ""
	getDirectory = join(parts, "/")
End Function
To be continued! Je nl'ai pas encore testé mais d'ici que tu saches comment lançé la macro "main" je pense que j'aurai terminé à moins que j'eusse sousestimé ta motivation mais de toute façon il est bien tard pour moi c'est dodo! :roll:
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Merci tiogran,

Comme précisé en MP, laisse moi le soin de lire ça correctement et... d'assimiler surtout ;) Je te dirai quoi :)

Au fait, quand tu me dis d'ouvrir un document Libre Office Draw et de l'enregistrer dans le répertoire contenant les images, cela veut-il dire qu'il faut ouvrir Office Draw, cliquer sur l'onglet fichier, puis sur enregistrer sous...., de façon à obtenir un document vierge comme ceci dans le dossier contenant les images ? :

Image

PS : ton dernier screenshot est visible, mais reste en affichage discret :lol:
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

C'est tout à fait çà.
Lorsque tu créé un nouveau fichier d'une certaine façon il n'existe pas vraiment et cela pourrait (c'est donc préventif) créer des problèmes. Difficile pour moi d'en dire plus j'ai encore trop en tête un fonctionnement windozien.
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Pour te donner une idée, voici comment se présentent mes images dans le répertoire :) :

Image

Il y a plusieurs images qui sont en relation avec celle qui les précède et c'est pour ça que certaines sont nommées, comme dans l'exemple ici, avec «bis» en plus ; cela pose-t-il un problème ? :roll:

Et voici comment se présente le fichier Draw créé et qui s'est logé en fin de liste :

Image

8-) ;)

Me revoilà un peu plus tard... :P

Dans Libre Office, j'ai donc suivi ta procédure :

Code : Tout sélectionner

Pour utiliser les macros il faut baisser le niveau de sécurité de Libre Office:
Outils>Options>LibreOffice>(à droite) clic sur sécurité des macros. Choisir "Moyen" et valider par OK
Voici comment enregistrer la macro:
1.ouvres un document Libre Office Draw et enregistres le
2.vas dans le menu Outils>Macros>Gérer les macros>Libre Office Basic (la tu clic dessus)
3.Une boite de dialogue intitulé "Macros Libre Office Basic" s'ouvre:
>A gauche, la partie du bas il y a un encart nommé "Macro de". Il y a une liste avec au moins déja "Mes macros","macros libre office" et ton document.
>On va héberger la macro dans Libre Office pour que tu puisses faire appel à elle depuis n'importe quel document.
>>Clic sur "Mes macros" puis sur "Standard" et enfin sur la droite de cette boite de dialogue, clic sur le bouton "nouveau". Cela te demande un nom, mets par exemple "Générer du Pdf".
4. La normalement, une nouvelle fenêtre s'ouvre c'est en fait un sous programme appellé "EDI" qui gère les macros basic entre autres. La plus grande partie du programme est située à droite et c'est là que tu vas effacer ce qu'il y a dedans pour y copier le code que je t'ai fourni avant. As-tu toujours des problèmes pour voir mes screens?
L'EDI une fois la macro copiée, collée

La tu fais sur le menu "Fichier" de l'EDI tu enregistres et tu fermes l'EDI; la macro est enregistrée sur Libre Office et tu pourras faire appel à elle depuis n'importe quel document.
Seulement, je n'ai pas donné de nom à la macro avant de faire le copier/coller dans l'EDI ; j'ai donc voulu revenir en arrière pour renommer, mais ça donne ceci :

Image

J'ai alors de toutes façons essayé d'enregistrer la macro, mais :

Image

;)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Salut!
Linuxing a écrit : avec «bis» en plus ; cela pose-t-il un problème ?
ah oui malheureusement ca va compliqué la tache... La macro fait une boucle avec x qui devient 1 puis 2,3 etc jusqu'a etre au nombre d'images contenus dans le dossier et après cela lui, permet de récupérer les fichier A1, A2 etc si y'en a une qui s'appelle A1bis; elle ne sera pas intégrée.

Par rapport à ta capture d'écran, clairement elle indique que le nom est incorrect car tu essaies de renommer la bibliotheque "Standard", je t'ai indiqué de renommer un module.
>>Clic sur "Mes macros" puis sur "Standard" et enfin sur la droite de cette boite de dialogue, clic sur le bouton "nouveau". Cela te demande un nom, mets par exemple "Générer du Pdf".
La en l'occurence je vois que tu as déja un module nommé "module 1" alors te cailles pas le lait, laisses comme çà pour l'instant. Tu le renommeras lorsque tu seras plus habitué à l'interface, on va tacher d'avancer a petits pas tout cela est tellement nouveau pour toi...
Par contre, je vois que tu as bien reussi à copier la macro au bon endroit donc tu sais quoi laisses comme c'est là!
Mais sinon c'est super tu commences à te familiarisé avec le logiciel, tu es déja dans l'antre la bête ;)

Pour le problème d'option "enregistrer" qui est grisé, à mon avis entre temps tu as du fermer le document draw. Reessaies la même manipulation mais avec un document draw ouvert et enregistré. Si çà marche pas, on va trouver une autre solution; je suis désolé on est un peu dans le dur mais c'est le temps que tu te fasses la main.

Bon récapitulons:
Tu as enregistré la macro dans le module "module 1" de la bibliothèque "standard" de "Mes macros" et çà c'est déja extra! Cela veut dire qu'il faut maintenant l'éxécuter. Pour cela tu vas utiliser le même menu que précédemment en ayant le document draw ouvert avec les images correctement nommées. En cliquant sur la bibliothèque "standars" de "mes macros" maintenant apparait le module "module 1" ou est stockée ta macro. Lorsque tu vas cliquer sur le module, sur la partie droite de la boite de dialogue en dessous de "Macros existantes dans : Module 1" tu as la liste des macros. edit: avant l'éxécution remplace les précédentes macros par une nouvelle version en bas de ce message. Tu en as une qui s'appelle "Main", tu la sélectionnes et tu l'execute avec un bouton sur en haut à de la boite de dialogue et c'est parti! si tu as des messages d'erreur nous les corrigerons jusqu'a obtenir un code parfait.
Sinon j'ai vu avec zebulon, il y a moyen de te partager des documents avec http://www.cjoint.com/" onclick="window.open(this.href);return false; en cas de souci ca peut etre une solution de repli sinon si tu me mp un mail je peux te l'envoyer si tu excerces avec mon adresse mail la même discretion que j'userai avec la tienne.

Code : Tout sélectionner

REM  *****  BASIC  *****
REM Ce travail est largement inspiré des travaux de M MARCELLY et M GODARD dans leur ouvrage "Programmation OpenOffice.org et LibreOffice"

Option explicit
Sub Main
	Dim doc, lesPages, unePage as object
	Dim url_folder as string
	Dim nImages, x as integer
	doc = thiscomponent
	url_folder = getDirectory(doc.URL)
	nImages = RecupererNombreFichiers(url_folder)
	lesPages = doc.drawpages 'c'est la collection des diapos du document
	'La première diapo est créée par défaut, il faut donc la traiter en priorité
	unePage = lesPages.getbyindex(0)
	unePage.Name = "Page 1"
	InsererUneImageDansPage(doc, unePage, url_folder, 0)
	'on lance une boucle qui va se répéter autant de fois qu'il y a de diapo
	For x = 1 to nImages-1' car la première est indexée à 0 (0 étant le premier index en programmation)
		lesPages.InsertNewByIndex(x)
		unePage = lesPages.getbyindex(x)
		unePage.Name = "Page " & x
		InsererUneImageDansPage(doc, unePage, url_folder, x)'L'insertion d'une image est une procédure plutot complexe c'est pourquoi elle est traitée dans un sous programme
		'ainsi si nous devons modifier les parametres à appliquer, la clarté du programme s'en trouvera améliorée.
	Next
End Sub

Function RecupererNombreFichiers(url_folder)
	Dim f2 as string
	Dim x as long
	x = 0
	f2 = Dir(url_folder & "*", 0)
	Do while Len(f2) > 0
		f2 = Dir
		x=x+1
		print x
	Loop
	Msgbox("nbre total de fichiers sans compté le document lançeur = " & x)
	RecupererNombreFichiers = x-2 'les fichiers images = nbre total de fichiers - doc lanceur - fichier .lock
End function

Sub InsererUneImageDansPage(doc, unePage, url_folder, x)
	Dim lImage, gp as object
	Dim props(0) as New com.sun.star.beans.PropertyValue'attention à la casse!!!
	gp = createUnoservice("com.sun.star.graphic.GraphicProvider")'attention à la casse!!!
	'on définit l'adresse de l'image
	props(0).Name = "URL"'attention à la casse!!!
	props(0).Value = convertToURL(url_folder & "A" & x+1)'car A1 est l'image de la page index 0 (rappel ;)), Y A T IL UN SUFFIXE A TON IMAGE (ex .png ou .jpeg)??????
	lImage = doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
	lImage.Graphic = gp.queryGraphic(props())
	unePage.add(lImage)
	resizeImageByWidth(lImage, 11000) 'les parametres suivant sont ajustable au 1/100 de mm
	'positionImage.x = 6500
	'positionImage.y = 5300
	'lImage.Position = positionImage
	'lImage.Name = "image" & x+1
End Sub

Function getDirectory(URLPath As String) As String
REM Cette fonction est la copie exacte du travail de M Marcelly et de M Godard dans leur ouvrage "Programmation OpenOffice.org et LibreOffice"
	Dim parts As Variant
	parts = split(URLPath, "/")
	parts(UBound(parts())) = ""
	getDirectory = join(parts, "/")
End Function
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Avatar du membre
Linuxing
Messages : 1484
Enregistré le : mar. 25 août 2015 01:28

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par Linuxing »

Salut tiogran,

J'ai renommé mes 118 images de la façon suivante :

A1, A2, A3.....A118 ;) Chacune de ces images avec extension : .jpg - .jpeg - .png

Peut-être doivent-elles toutes avoir la même extension ? Mais dans ce cas, certaines images ne se chargent pas dans la visionneuse classique... Comme si ces fichiers avaient leur besoin propre en termes d'extension :roll:

Ensuite, j'ai copié ta dernière macro fournie et effacé la précédente, avec le fichier Draw ouvert cette fois, j'ai aussi pu l'enregistrer 8-)

Pour ce qui est de nommer, ça reste une ratée, mais peu importe provisoirement :lol:

Voici les fenêtres :

Image

En cliquant sur Exécuter, plusieurs petites fenêtres s'ouvrirent, l'une à la suite de l'autre... je me suis arrêté après la dixième car je crois que ce sont les 118 correspondant au nombre d'images qui allaient défiler :x

Image

Il me semble que le processus allait s'exécuter en 118 fois et j'ai interrompu :

Image

;) :)
Laptop depuis le 16 juillet 2021 : Tuxedo Polaris 17 - Processeur Intel® Core I7 - 10750H / NVIDIA GeForce RTX 1650Ti / Full-HD IPS mat 144Hz / DDR4 SO-DIMM : 16 GB (1x 16GB) 3200Mhz CL22 Samsung / SSD: 1000 GB Samsung 860 EVO (M.2 SATAIII) / WLAN & Bluetooth: Intel Wi-Fi 6 AX200 & Bluetooth 5.1 (up to 2400Mbps). OS : Linux Mint 20.3 (Una) Mate depuis ce 16 janvier 2022

Périphériques : 2 HD Western Digital - Imprimante HP Deskjet 2540 Tout-en-un / Scanner Canon Lide 110 - Navigateur : Firefox

Avatar du membre
tiogran
Messages : 163
Enregistré le : jeu. 24 nov. 2016 20:03

Re: [RESOLU] Libre Office Draw : assembler des images PNG en un fichier PDF

Message par tiogran »

Super tu avances à grand pas...
Pour le logg gênant,
Dans

Code : Tout sélectionner

Function RecupererNombreFichiers(url_folder)
, il faut effacer l'instruction qui demande d'imprimer l'index... Excuses généralement je les enleves une fois que j'ai contrôlé que tout étais ok... Cela me fait penser que dans une phase de devellopement, il est important de mettre ce genre de "témoin" à des endroits importants mais bref faut penser à les enlever après :roll:
L'instruction à oter de la fonction est

Code : Tout sélectionner

print x
tout simplement, l'équivalent de

Code : Tout sélectionner

echo $x
en bash...

La deuxieme fenetre fait suite a ton choix d'annuler (et tu as eu raison) la procédure...

Quant aux extensions... Les extensions sont un précepte windoziens que beaucoup considèrent comme une faille de sécurité... En effet MS se base sur l'extension pour la lecture de fichiers: grave erreur puisque un executable comme par exemple un intrusif comme (fictif) "Trojan.apk" renommé par un moins inquiétant mais tout aussi dangereux "La reine des neiges à l'olympia.mp3" suffit à MS pour se faire berner. Linux quant à lui est beaucoup précautionneux car c'est le type de données contenus dans le fichier qui détermine la façon dont il va chercher à l'ouvrir et dans le cas de "La reine des neiges à l'olympia.mp3 il te dira "attention à tes fesses c'est un executable et en plus elle chante faux."
Pour notre affaire, j'ai testé les images n'ont pas besoin d'etre avec extensions... tiens moi au courant si c'est toujours le cas pour toi...
Configuration personnelle du PC.
i7 4790k
radeon 7970 4g
16g ram 2133
ssd 120g (pour windaube)
hdd 1T (pour linux)
Os = dual boot windows 10 (l'escroc)
linux mint (l'insoumis)
Environnement MATE.
Une devise? en ce moment une se rappelle souvent à mon bon souvenir "Le problème EST la solution"

Répondre