-
31-07-2007, 22:50 #1Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
PHP: Printerfuncties onder windows
Hoort eigenlijk meer thuis bij progging omdat het nu eens niets met webdev te maken heeft, maar hier zitten meer mensen die met php bezig zijn
.
Ik heb atm een applicatie die een pak zaken moet afdrukken (rangschikkingen voornamelijk).
Nu had ik een volledige print-out geschreven, imet volgende stappen:
Lokale testen verloopten perfect, alles werd mooi afgedrukt.PHP Code:selecteerPrinter;
openPrinter;
selecteerFont;
startDocument;
//Output (in loop desnoods
startPagina;
output dmv drawText & drawLine fies
sluitPagina;
// Einde output
stopDocument;
verwijderFont;
sluitPrinter;
Nu kwam ik ergens anders aan, andere printer, drukt die die zaken 2x zo klein af. Op nog een andere printer daar weer 2x zo klein, maar wel exact zelfde grootte als op die eerdere waar het misliep. Geen enkele van de printers stond scaled of zo
.
Nu vroeg ik me af: is er hier een optie of zo die ik over het hoofd zie of zijn die font-groottes die je in php selecteert puur printer afhankelijk?
Hopelijk weet er hier toch iemand het antwoord
.
edit: en ik wil geen gezever van PHP dient niet voor te printen, ik had geen tijd (en geen ide) om het in c++ te maken tot nu. Als ik het niet vind ga ik het alsnog zo doen, maar het zou iets leuker zijn moest ik nu gewoon de php oplossing krijgen
, gezien dat wrsch 10s werk is itt alles gaan herschrijven in c++.
no votes
-
-
01-08-2007, 09:24 #2Approved 9liver
- Registered
- 28/11/03
- Location
- Drongen
- Posts
- 6,665
- iTrader
- 5 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 6/28
het is niet direct een oplossing hiervoor maar... kan je niet een pdf maken on the fly en die afdrukken? dan ben je zeker dat het op elke printer gelijk is.
Wij doen dat hier toch zo (is wel niet vanuit php ma bon, princiepe telt)
Misschien ondersteunen de printers bepaalde commando's niet waardoor de font niet correct gezet wordt. Dit kan mss ook een oorzaak zijn. Beide printers waar het probleem zich voordoet, zijn dat printers van hetzelfde merk of andere? Eens de verschillen zoeken bij u thuis en bij de andere printersno votes
-
01-08-2007, 12:14 #3Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Het waren allemaal HP's.
Nuja, ik snap het gewoon al niet goed omdat de php functies uiteindelijk gewoon wraps zijn van functies uit de winapi, waarvan ik weet dat ze wel perfect zouden moeten werken.
Strx nog eens op verderzoeken ze.
edit: en zoiets was mijn plan ze moest ik het niet werkend krijgen, formatted output al maken (nu niet in pdf) en dat doorgeven aan een c++ printer app
. Maar soit, eerst nog even zoeken op die php-stuff.
edit 2: hah, PHP werkt dus blijkbaar met pixel of raster-based units (die dus kunnen verschillen per printer) ipv met logical units of zo. Oplossing die ik gebruikt heb: kies een referentieprinter om op te testen.
Zoek een optimale height/width voor je font en doe dan dit:
$height= $height*printer_logical_fontheight($handle,10)/$factor;
$factor is in dit geval de printer_logical_fontheight($handle,10) van die referentieprinter (in mijn geval 42).
Hopelijk is iemand er iets mee, maar ik raad toch aan een c++ compiler of zo bij de hand te hebben en dit in c++ te schrijven
.
Last edited by killgore; 01-08-2007 at 16:32.
no votes

