[PHP4] Printer functies gebruiken vs imagemagick

Pagina: 1
Acties:

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
Hmm.. het is een beetje een ingewikkeld verhaal, maar ik ga m'n best doen om het zo duidelijk mogelijk uit te leggen :)

Situatie: Ik heb een creditcard printer machine. Daar kan je je eigen creditcard kaartjes mee maken. De bijgeleverde software kan helaas niet met mysql overweg en wil perse MS SQL / andere variant hebben.

Goed dan bouwen we de functies die ik nodig heb wel in PHP en doe ik de printeraansturing zelf wel :)

Na een paar dagen scripten om het systeem te krijgen volgens mijn eigen wensen ben ik bij het printen van de kaarten aangekomen. En nou heb ik 2 opties:

Ik heb een BMP file als achtergrond. Daarop komt:
- een foto (genomen met webcam)
- naam
- validatie datum
- cardID

ik kan dat op 2 verschillende manieren doen volgens mij.
1:
1 manier is om direct de te plaatsen onderdelen richting de printer te sturen met de functies printer_draw_bmp en printer_draw_text.

2: We maken het plaatje en de onderdelen eerste via imagemagick, converteren het naar BMP (want dat moet voor die printer) en sturen het vervolgens via de printer functies richting de printer.


Nr 1 is redelijk simpel en werkt op dit moment ook al (sort of). Probleem hierbij is dat de geplaatste text op het kaartje altijd een witte achtergrond heeft. Ik heb nog geen truc kunnen vinden om de achtergrond transparant te maken.

nr 2 is wat ingewikkelder met wat exec calls ertussen, maar bied waarschijnlijk veel meer mogelijkheden wbt het plaatsen van text. Mijn ervaring met imagemagick is overigens gelijk aan nihil.


Aangezien het lokaal komt te draaien, en het printen van 1 kaart toch al 30 seconden duurt, doen snelheidsverschillen hier niet echt terzake.

Mijn vraag concreet: ben ik gebonden aan imagemagick om dit kaartje zo goed mogelijk te printen, of kan ik dezelfde resultaten ook behalen door gebruik te maken van de hierboven beschreven (pecl) php functies?




De positionering van elementen op het kaartje zijn voor mij echt een raadsel aangezien het printer dots zijn. Iemand nog een tip om dit makkelijker te kunnen bepalen? Ik druk nu elke keer een test uit om te kijken hoe goed ik ben in het gokken van posities.

(bijv.. hoeveel dots zijn gelijk aan 1mm of 1cm)

Thanks for the help!

Verstand van Voip? Ik heb een leuke baan voor je!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Waarom gebruik je niet GD? Dat zit standaard in PHP en werkt een beetje makkelijker. Bovendien doet dan het converteren naar BMP niet terzake, omdat je dan meteen een BMP kan maken.

Over je dots vraag... Je printer heeft een bepaald DPI (dots per inch), en een inch is 2,54cm, dus dat moet uit te rekenen zijn. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 29-01 20:14

megamuch

Tring Tring!

Topicstarter
NMe84 schreef op 04 september 2004 @ 01:10:
Waarom gebruik je niet GD? Dat zit standaard in PHP en werkt een beetje makkelijker. Bovendien doet dan het converteren naar BMP niet terzake, omdat je dan meteen een BMP kan maken.

Over je dots vraag... Je printer heeft een bepaald DPI (dots per inch), en een inch is 2,54cm, dus dat moet uit te rekenen zijn. :)
Ik pakte juist imagemagick omdat naar mijn weten ik met GD geen BMP kon maken. Alleen WBMP (Die dingen voor mobieltjes) of heb ik zitten slapen?

Verstand van Voip? Ik heb een leuke baan voor je!


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 14-05 15:52
megamuch schreef op 04 september 2004 @ 01:36:
[...]


Ik pakte juist imagemagick omdat naar mijn weten ik met GD geen BMP kon maken. Alleen WBMP (Die dingen voor mobieltjes) of heb ik zitten slapen?
Klopt, GD kan niet zelfstandig BMP genereren, Maar het is wel een van de handigste opties om plaatjes te genereren.
Je zou je PNG kunnen genereren en dan via de exec functie mbv PNGTOPNM en PPMTOBMP functies eea te converteren naar BMP. (dwz als je een *NIX bak hebt, want onder windows zitten deze funties niet.)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Of anders maak je met GD een PNG file, en converteer je die met IM naar BMP. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.