Avatar billede ladefoged Nybegynder
24. november 2004 - 09:36 Der er 21 kommentarer og
1 løsning

printer_create_dc() findes den endnu?

Hej

Jeg er ved at lave et system der skal printe direkte ud på en server hvor til jeg bruger php's extension php_printer.dll

Selve problemet er at når jeg forsøger at bruge funktionen printer_create_dc() får jeg følgende fejl:

Warning: No DeviceContext created in D:\wwwroot\print test\index.php on line 32

Jeg har så brugt adskillige timer på at søge på nettet efter information, det nærmeste jeg er kommet er at, funktionen simpelthen skulle være flyttet fra php, er der nogen der ved noget mere om det her, så skriv endelig, alle forslag og kommentarer er meget velkommen.
Avatar billede bojo Nybegynder
24. november 2004 - 09:42 #1
Avatar billede ladefoged Nybegynder
24. november 2004 - 09:45 #2
bojo >> Jeg takker men det er lige nettop det eksempel der giver fejlen, kan du få dette eksempel til at virke vil jeg meget gerne høre om din opsægning af server og printer
Avatar billede bojo Nybegynder
24. november 2004 - 09:46 #3
Avatar billede bojo Nybegynder
24. november 2004 - 09:46 #4
jeg prøver :-)
Avatar billede bojo Nybegynder
24. november 2004 - 10:11 #5
indsatte dl('php_printer.dll'); forrest, nu siger den istedet:

Warning: couldn't end the page in D:\sites\www\tools\print.php on line 24

Fatal error: couldn't terminate print job in D:\sites\www\tools\print.php on line 25

vel egentlig ikke meget bedre :-(
Avatar billede ladefoged Nybegynder
24. november 2004 - 10:12 #6
Lyder godt jeg venter spænt :-)
Avatar billede ladefoged Nybegynder
24. november 2004 - 10:13 #7
Hehe nope ikke helt vildt bedre
Avatar billede bojo Nybegynder
24. november 2004 - 10:40 #8
hvis du ikke SKAL bruge DC så virker dette

<?php
foreach( get_loaded_extensions() as $k => $v ) echo "$v ";
echo "<br />";
dl('php_printer.dll');
foreach( get_loaded_extensions() as $k => $v ) echo "$v ";
echo "<br />";

if( !extension_loaded('printer') ) {
  echo "Printer ikke indlæst<p />";
} else {
  echo "printer er indlæst<p />";
}

$handle = printer_open();

echo "start doc ".printer_start_doc($handle, "test")."<br />";
echo " start page ".printer_start_page($handle)."<br />";
echo "printer_write ".printer_write($handle, "printer test")."<br />";
echo "end page ".printer_end_page($handle)."<br />";
echo "end doc ".printer_end_doc($handle)."<br />";
echo "close ".printer_close($handle)."<br />";

?>
Avatar billede bojo Nybegynder
24. november 2004 - 10:46 #9
hov alle mine echo "..... kan jo fjernes, det var til debug :-)
Avatar billede ladefoged Nybegynder
24. november 2004 - 11:14 #10
Det ved jeg godt jeg er selv kommet frem til at følgende virker

$handle = printer_open('\\\\server\\HP OfficeJet G Series');

printer_start_doc($handle, "Kundeliste - Label");
printer_start_page($handle);

//    Tegn skære mærker START    //
$pen = printer_create_pen(PRINTER_PEN_SOLID, 1, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 60, 10, 60, 50);
printer_draw_line($handle, 10, 60, 50, 60);

printer_draw_line($handle, 60, 245, 60, 285);
printer_draw_line($handle, 10, 235, 50, 235);

printer_draw_line($handle, 660, 10, 660, 50);
printer_draw_line($handle, 670, 60, 710, 60);

printer_draw_line($handle, 670, 235, 710, 235);
printer_draw_line($handle, 660, 245, 660, 285);

printer_delete_pen($pen);
//    Tegn skære mærker SLUT    //

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);

Men mit problem er at jeg gerne vil lave noget centeret tekst og så vidt jeg ved skal jeg bruge DC for at det kan lade sig gøre
Avatar billede bojo Nybegynder
24. november 2004 - 11:34 #11
eller selv beregne midten og bruge printer_draw_text($handle, "test", 10, 10); men jeg roder lidt mere og håber det kan lykkes :-)
Avatar billede ladefoged Nybegynder
24. november 2004 - 12:04 #12
Ja var en mulighed problemet er bare at printer_draw_text er venstre stillet så det bliver godt nok noget af en udregning
Avatar billede bojo Nybegynder
24. november 2004 - 12:15 #13
umiddelbart ser det ud til at http://dk2.php.net/manual/da/function.printer-set-option.php skulle virke, men jeg får det ikke til det :-(

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_CENTER);
printer_close($handle);
?>
Avatar billede ladefoged Nybegynder
24. november 2004 - 12:29 #14
Det ser heller ikke ud til at virke hos mig :-(, det er nok et større opgave jeg har givet mig selv her
Avatar billede bojo Nybegynder
24. november 2004 - 12:54 #15
det er nok lettere at lave en fil med printer-styrekoder og så bruge exec til at få skrevet den ud tilsidst
Avatar billede ladefoged Nybegynder
24. november 2004 - 12:55 #16
Oki kan du forklare det lidt nærmere eller sende et link med nogle info
Avatar billede bojo Nybegynder
02. december 2004 - 11:41 #17
hov, sorry du var blevet væk :-)

Printere styres med nogle escape sekvenser ( styre koder ) disse variere fra printer til printer, derfor printer drivere.

Du kan så lave en fil med det du vil sende til printeren, både din bogstaver/tal og dine styre koder, fat en manual eller søg på nettet efter koder til din printer, jeg ser det er en HP og de bruger vist alle en eller anden variant af PCL ( http://www.webopedia.com/TERM/P/PCL.html ) og HPGL ( http://www.webopedia.com/TERM/H/HPGL.html ).


Når filen er dannet skal den kopieres til printerporten IKKE udskrives for så tager printerdriveren over.

Prøv at lave en fil med

alm. tekst {esc}&d3DUnderstreget tekst{esc}&d@alm. igen

hvor {esc} = 1B hexadecimalt og send den til din printer.

http://www.swiftview.com/pclcorner/pclcorner1.htm
Avatar billede ladefoged Nybegynder
07. december 2004 - 20:39 #18
bojo >> Kyler du ikke lige et svar så vi kan få afsluttet den her tråd.

Så må vi jo se om jeg tør kaste mig ud i det du snakker om, det lyder nu lidt
vildt :-)
Avatar billede bojo Nybegynder
07. december 2004 - 21:38 #19
nej, svar du selv
Avatar billede ladefoged Nybegynder
07. december 2004 - 21:51 #20
Kan vi så ikke dele, for du har jo sparket mig i den rigtige retning?
Avatar billede bojo Nybegynder
08. december 2004 - 07:24 #21
nej tak, tag du dem
Avatar billede ladefoged Nybegynder
08. december 2004 - 08:22 #22
Oki bliver jeg jo nødtil så, men takker på hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester