21. august 2010 - 15:41Der er
25 kommentarer og 1 løsning
Printer linieskift
Jeg har følgendene script som jeg gerne skulle have til at skifte linie efter x antal tegn
Vi har kikket på opgaven et længere stykke tid og er ind til vidre kommet frem til følgendene script:
<?php $opgave_navn = "SMS Print"; // navnet du vil kunne se på dokumentet i udskrift listen $printer = "\\\\192.168.100.3\\HP Color LaserJet 2600n"; // kilden til printeren $user = $_GET["user"]; // brugernavn bliver modtaget $password = $_GET["password"]; //password bliver modtaget $text = "Til " . $_GET["user"] . "<br>" . $_GET["text"] . ""; // Bruger og tekst bliver modtaget $api_id = $_GET["api_id"]; // id bliver modtaget $to = $_GET["to"]; // modtagerens mobilnummer bliver modtaget $fonttype = "Verdana"; // skrifttyppe $width = "72"; // Tekst brede $height = "48"; // Tekst højde $italic = ""; // Tekst Kursiv $weight = "400"; // Tekst tykkelse $underline = ""; // Tekst Understreg $strikeout = ""; // Tekst Overstreg $orientation = "0"; // Tekst vinkel $linebreak = 100; // Linie afstand
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font($fonttype, $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font);
function print_linebreak($fhandle, $newtext, $i = 0, $lby = 10) { $text4 = substr($newtext,strpos($newtext,"<CRLF>")); echo "text4: ".$text4."\n"; //printer_draw_text($fhandle, $text4, 10, $lby); $text3 = strstr($newstext, "<CRLF>"); if ($text3) { echo "text3: ".$text3."\n"; $lby2 = $lby+100; //afstand du vil offsette næste linie echo "Offset: ".$lby2; if ($i <= 10) { $i++ print_linebreak($fhandle, $text3, $i, $lby2); } else { echo "Loops overstiger 10"; } } if ($text) { $text2 = wordwrap($text, 20, "<CRLF>"); echo "text2: ".$text2."\n"; print_linebreak($handle, $text2); }
Gør den det stadig med ovenstående? Jeg er meget interreseret i text 4 og 3. 4 skulle gerne indeholde det der skal udskrives 3 skulle gerne indeholde det der skal sendes videre Offset skulle gerne være stigende
En af ovenstående muligheder skal erstatte alt det skrammel jeg fik bikset sammen længere oppe.
Hvis chr(10) stadig ikke fungerer som adskiller i scriptet, kan du udskifte den med en eller anden string.
Den korte version fungerer sikkert ikke, mange funktioner bryder sig ikke om at man pakker det for meget, og jeg syntes aldrig jeg kan få $i += 100; til at fungere...
Men mine foreach er uendeligt mange gange bedre... Jeg fatter ikke forfor jeg gjorde det hele så bøvlet, når jeg ganske udemærket kender explode og foreach...
<?php $opgave_navn = "SMS Print"; // navnet du vil kunne se på dokumentet i udskrift listen $printer = "\\\\192.168.100.3\\HP Color LaserJet 2600n"; // kilden til printeren $user = $_GET["user"]; // brugernavn bliver modtaget $password = $_GET["password"]; //password bliver modtaget $text = "Til " . $_GET["user"] . "<br>" . $_GET["text"] . ""; // Bruger og tekst bliver modtaget $api_id = $_GET["api_id"]; // id bliver modtaget $to = $_GET["to"]; // modtagerens mobilnummer bliver modtaget $fonttype = "Verdana"; // skrifttyppe $width = "72"; // Tekst brede $height = "48"; // Tekst højde $italic = ""; // Tekst Kursiv $weight = "400"; // Tekst tykkelse $underline = ""; // Tekst Understreg $strikeout = ""; // Tekst Overstreg $orientation = "0"; // Tekst vinkel $linebreak = 100; // Linie afstand
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font($fonttype, $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font);
Wordwrapped tekst: Til exp hej med det dette er en længere tekst som sikkert haller ikke virker men teksten er lang nok til en test. Text til udskrift: Til exp hej med Offset: 10 Text til udskrift: det dette er en Offset: 110 Text til udskrift: længere tekst som Offset: 210 Text til udskrift: sikkert haller ikke Offset: 310 Text til udskrift: virker men teksten Offset: 410 Text til udskrift: er lang nok til en Offset: 510 Text til udskrift: test. Offset: 610 Har printet "" Uden problemer. Fra bruger exp Beskeder er ikke sendt til da dette er en printer funktion
Udskrift: Blank
#21 Resultat:
Har printet "" Uden problemer. Fra bruger exp Beskeder er ikke sendt til da dette er en printer funktion
Udskrift: Til exp<br>hej med det dette er en længere tekst som sikkert haller ikke virker men teksten er lang nok til en test
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.