Bonjour,
Je suis en train de plancher sur un module qui me permet d'insérer automatiquement un QRCode sur mes documents commerciaux, en l'occurence pour l'instant, il s'agit d'insérer un QRCode de type "carte de visite", donc celui-ci serais généré en fonction du champ COMMERCIAL mais je vois pas vraiment comment faire à l'aide d'un module en fouillant dans les sources, hormis peut être un SpreadSheetGeneratorListener maisça me donnerais pas accès à la génération à proprement dite.
Je compte utiliser la librairie ZXing qui me parait vraiment pas mal du tout.
Pouvez vous me confirmer la faisabilité par le biais d'un module ??
La solution de secours consiste à l'insérer directement dans le template mais celui-ci serais figé...
Merci.
Genération de documents
Bonjour Ludovic,
Merci pour votre aide, j'arrive à générer un objet test dans la cellule concernée, cependant je n'arrive pas à voir quel type d'objet est attendu pour insérer une image dans le fichier ods, j'ai testé avec un InputStream, une JImage, ... et à chaque fois l'objet est casté en string. En regardant d'un peu plus près la classe MutableCell, il apparait que seul une string peut être insérée...
Pourtant une fonction setImage() est bien disponible mais je ne vois pas comment y accéder à partir d'un SpreadSheetCellValueProvider, même quand je retourne un File dans getValue() ça m'insère le path...
Rien non plus dans les type de champs ou d'élement pouvant indiquer une image.
Merci.
Merci pour votre aide, j'arrive à générer un objet test dans la cellule concernée, cependant je n'arrive pas à voir quel type d'objet est attendu pour insérer une image dans le fichier ods, j'ai testé avec un InputStream, une JImage, ... et à chaque fois l'objet est casté en string. En regardant d'un peu plus près la classe MutableCell, il apparait que seul une string peut être insérée...
Pourtant une fonction setImage() est bien disponible mais je ne vois pas comment y accéder à partir d'un SpreadSheetCellValueProvider, même quand je retourne un File dans getValue() ça m'insère le path...
Rien non plus dans les type de champs ou d'élement pouvant indiquer une image.
Merci.
Essayez de modifier la méthode setCellValue de la class OOGenerationXML dans le projet OpenConcerto, remplacez le
else {
cell.setValue(value);
}
par
else if (value instance of File){
cell.setImage((File)value);
}else {
cell.setValue(value);
}
Je n'ai pas le temps de testé cette semaine, merci de me tenir au courant de vos tests. Nous intégrerons cette modification dans OpenConcerto si cela fonctionne.
Cordialement,
Ludovic.
else {
cell.setValue(value);
}
par
else if (value instance of File){
cell.setImage((File)value);
}else {
cell.setValue(value);
}
Je n'ai pas le temps de testé cette semaine, merci de me tenir au courant de vos tests. Nous intégrerons cette modification dans OpenConcerto si cela fonctionne.
Cordialement,
Ludovic.
Bonsoir Ludovic,
Avec cette modification il prend bien le fichier mais je me retrouve avec une erreur:
, en fouillant dans les sources il apparaît que setImage() attend un élément draw avec un child frame et un autre child image, en les mettant j'ai toujours une erreur.
Visiblement le problème est maintenant dans le fichier xml.
Je regarde ça demain pour voir si je trouve la solution.
Avec cette modification il prend bien le fichier mais je me retrouve avec une erreur:
Code : Tout sélectionner
this cell doesn't contain an image: <table:table-cell xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" />
Visiblement le problème est maintenant dans le fichier xml.
Je regarde ça demain pour voir si je trouve la solution.
En ajoutant sous OpenOffice une image "placeholder" dans la cellule en question ça fonctionne mais pas moyen de l'indiquer dans le fichier xml (en tout cas je trouve toujours pas).
De plus l'image placeholder doit être dimensionnée correctement parceque l'image est générée sur la frame de cette image, pour garder le bon ratio, j'ai remplacer votre appel à setImage() par celui ci-dessous en spécifiant le respect du ratio.
De plus l'image placeholder doit être dimensionnée correctement parceque l'image est générée sur la frame de cette image, pour garder le bon ratio, j'ai remplacer votre appel à setImage() par celui ci-dessous en spécifiant le respect du ratio.
Code : Tout sélectionner
cell.setImage((File)value, true);
Bonjour,
La solution actuelle n'est pas évidente à gérer car le xml ne dispose pas encore du support des images,
et côté jOpenDocument, on a de quoi remplacer une image mais pas de quoi en ajouter une en spécifiant position et taille.
Bref, il y a encore du boulot!
Cordialement,
La solution actuelle n'est pas évidente à gérer car le xml ne dispose pas encore du support des images,
et côté jOpenDocument, on a de quoi remplacer une image mais pas de quoi en ajouter une en spécifiant position et taille.
Bref, il y a encore du boulot!
Cordialement,
Bonjour Guillaume,
C'est ce que j'ai vu justement, au départ j'ai pensé ajouter une image si on en trouvait pas mais rien pour le faire...
Je me suis donc rabattu sur une solution qui je penses fait l'affaire, solution pas trop handicapante qui consiste à ajouter manuellement une image "placeholder" dans la cellule en question et travailler dessus à partir du module, j'ai qqchose qui fonctionne bien pour le moment, juste une petite modification à effectuer au niveau d'OC et mon module sera opérationnel.
Modification a apporter:
Modifier la condition dans la méthode setCellValue() de la class OOGenerationXML:
par
Si vous apportez cette modification sur la 1.5, je pourrais mettre le module à dispo de la communauté.
C'est ce que j'ai vu justement, au départ j'ai pensé ajouter une image si on en trouvait pas mais rien pour le faire...
Je me suis donc rabattu sur une solution qui je penses fait l'affaire, solution pas trop handicapante qui consiste à ajouter manuellement une image "placeholder" dans la cellule en question et travailler dessus à partir du module, j'ai qqchose qui fonctionne bien pour le moment, juste une petite modification à effectuer au niveau d'OC et mon module sera opérationnel.
Modification a apporter:
Modifier la condition dans la méthode setCellValue() de la class OOGenerationXML:
Code : Tout sélectionner
else {
cell.setValue(value);
}
Code : Tout sélectionner
} else if (value instance of File){
cell.setImage((File)value, true);
} else {
cell.setValue(value);
}
Bonjour,
Vu que la 1.5 est sortie, je vous propose de peaufiner votre module et nous regarderons pour intégrer le plus de chose possible dans OpenConcerto lui même afin de simplifier le code des modules qui voudraient faire la même chose.
D'expérience, la 1.5.1 ne sortira pas dans trop longtemps car tout le monde va se jeter sur la 1.5 et remonter quelques "commentaires"
Cordialement,
Vu que la 1.5 est sortie, je vous propose de peaufiner votre module et nous regarderons pour intégrer le plus de chose possible dans OpenConcerto lui même afin de simplifier le code des modules qui voudraient faire la même chose.
D'expérience, la 1.5.1 ne sortira pas dans trop longtemps car tout le monde va se jeter sur la 1.5 et remonter quelques "commentaires"
Cordialement,