Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour ,
je voulais imprimer des images de format png en php directement en passant par un bouton mais ça ne marche pas j'ai utilisé la fonction print_write de la librairie php_printer.dll mais rien.
quelqu'un aurait il une solution.
Merci d'avance .
Hors ligne
Saluton,
Comme il est dit dans notre Charte "ça ne marche pas" n'a jamais constitué un diagnostic très utile au dépannage.
Et comme le disait mon maître ès programmation "bien poser le problème c'est, souvent, déjà le résoudre".
Alors n'hésite pas à nous donner plus de détails : messages d'erreurs, exemples, liens, etc.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Merci . au fait j'arrive à imprimer mais au lieu d'imprimer l'image il imprime juste le nom de l'image.
Ayant pousser mes recherches j'ai trouvé une solution qui consiste à transformer le fichier en pdf avec mes images et de d'appeler mon fichier par le print_write.
Maintenant j'aimerais savoir comment généré un pdf avec des images en php
Hors ligne
Il existe de nombreuses classes implémentées en PHP et générant des sorties au format pdf.
Notamment FPDF.
Mais c'est peut-être chargé inutilement le serveur que de créer des fichiers PDF assez volumineux juste pour imprimer des images.
Mais sans voir le script à l'origine de l'impression du nom de l'image plutôt que l'image elle-même il nous sera difficile de t'orienter.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
voici mon code :
<?php
$dossier = opendir("images/") or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant; // Ouvre le dossier contenant les images
if($dossier == true ){
echo "repertoire ouvert";
}
while (false !== ($f = readdir($dossier))) {
if (pathinfo($f,PATHINFO_EXTENSION) == 'jpg'){
$listephotos[] = $f; // Ajoute la photo
//print_r($listephotos[$i]);
}
}
$handle = printer_open("HP Photosmart 5520 series");
$handle = printer_open();
closedir($dossier); // On n'a plus besoin du dossier
sort($listephotos); // Trie par ordre alphabétique
// Et maintenant, on affiche.
foreach($listephotos as $nom){
printer_write($handle, "$nom);
//echo '<img src="images/'.$nom.'"><br>'.$nom.'<br><br>'; // Le nom de la photo + un retour à la ligne
}
printer_close();
?>
Hors ligne
Sans approfondir beaucoup, je remarque déjà une apparente incohérence entre ton message intial :
je voulais imprimer des images de format png
et ce script
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
wé je m'étais trompé labas c'est corrigé maintenant mais j'ai toujours la meme chose.
Hors ligne
Bonjour,
Conformément à la documentation officielle de php, sur la fonction printer_write si vous demandez à php, d'imprimer du texte, c'est ce qu'il fera. Or dans cette bibliothèque seule la fonction printer_draw_bmp se rapproche de ce que vous voulez faire, mais avec des images au format bmp et non png malheureusement.
Afin, de rester dans la continuité de ce que vous a proposé MK, à savoir rester simple pour faire des choses simples, je vous conseille de vous orienter vers la bibliothèque GD de php
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
ok merci. j'ai essayé maintenant de faire ce que vous aviez dit avec la fonction print_draw_bmp en transformant mes images en bmp avant de les imprimer mais j'ai autre souci car l'impression se lance biien mais j'ai une page vierge et cette erreur qui s'affiche : Failed to load bitmap 537273812cf3f.bmp in ... on line 23
<?php
$im = imagecreatefrompng('jo.png');
var_dump($im);
$randomName = uniqid().'.bmp';
var_dump($randomName);
imagewbmp($im,$randomName);
$handle = printer_open("HP Photosmart 5520 series");
printer_start_doc($handle, "My Document");
printer_start_page($handle);
printer_draw_bmp($handle,$randomName, 1 , 1 , 800 , 500);
printer_end_page($handle);
printer_end_doc($handle);
printer_close ($handle);
unlink($randomName);
?>
Hors ligne
Bonjour,
Houla, alors je pense qu'il est temps de faire une piqûre de rappel à nos chers lecteurs au niveau technique, parce que là tout est mélangé^^.
1) a) PHP est un script qui s'exécute du côté serveur, et par conséquent toute fonction d'impression côté serveur ne pourra et ne sera capable d'accéder seulement qu'aux imprimantes connectées au serveur. Dans ce contexte sauf à installer un serveur en local sur votre machine, vous ne pourrez imprimer de cette façon là sur votre imprimante.
1) b) Dans le cas où vous avez votre serveur installé en local (wamp, etc...) il faut bien comprendre, que l'on ne peut imprimer une image qu'une fois celle-ci ouverte et chargée en mémoire, auquel cas son handle devra être passé à la fonction d'impression pour être imprimé.
2) Dans un contexte classique (serveur distant), il faudra afficher en local votre image et imprimer la page qui l'affiche en javascript avec un simple window.print();
Si l'on veut imprimer l'image seule dans la taille souhaité, il suffira par exemple sur clic de la miniature de l'image à imprimer d'ouvrir une infobulle ou une boîte de dialogue contenant l'image d'origine seule qu'il suffira d'imprimer.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Pages :: 1