Med: wordwrap($text, 20, chr(10)) laver den en firkant ved næsten hvert mellemrum. Hvor den med: wordwrap($text, 20, "\n") kun lavede efter hvert 20 tegn.
gad vide om en printer interfacer med noget i retningen af VB for at gøre den let tilgængelig for maskiner osv. I så fald skal du måske linebreake med: CrLf eller vbCrLf eller vbNewLine eller chr(13) eller chr(13).chr(10)
chr(10) svarer til 0x0A (Line Feed)fra den sige jeg linkede helt i toppen
Scriptet er selv bygget op for bunden. Du kan følge med i scriptet her:
<?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 $teksttyppe = "Arial"; // 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
$newtext = wordwrap($text, 50, "\n"); // Her skal der genereres linieskift
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font("Verdana", $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font); printer_draw_text($handle, $newtext, 10, 10); // Input af tekst og plasering på udskriften. printer_delete_font($font);
#26 Jeg har ledt over alt, og har ikke kunnet finde noget andet end hvad jeg allrede har skrevet, så måske er det kun muligt at bruge printer_draw_text() funktionen flere gange, med forskelligt y offset.
Hvis det jeg lige har lavet ikke fungerer, og det ikke er nemt at få til at fungere så prøv:
Nej... jeg roder ikke med noget mere for i aften, når jeg ikke har adgang til koden er der heller ikke nogen grund til at kigge mere derinde :P
Du kan prøve det script jeg lavede i #27, hvis det fungerer efter hensigten skulle den loope og lave en ny linie for hver chr(10) der bliver tilføjet i wordwrap() funktionen
Det skal så også lige sættes ind i den rigtige rækkefølge :P
<?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 $teksttyppe = "Arial"; // 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
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font("Verdana", $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font); if ($text) { print_linebreak(wordwrap($text, 50, chr(10))); } printer_delete_font($font);
function print_linebreak($newtext, $y = 10) { printer_draw_text($handle, strstr($newstext, chr(10), true), 10, $y); if ($text2 = strstr($newstext, chr(10))) { $y += 100; //afstand du vil offsette næste linie print_linebreak($text2, $y); } }
men unction print_linebreak($newtext, $y = 10) { printer_draw_text($handle, strstr($newstext, chr(10), true), 10, $y); if ($text2 = strstr($newstext, chr(10))) { $y += 100; //afstand du vil offsette næste linie print_linebreak($text2, $y); } } Virker ikke
$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 = $_GET["text"]; // Bruger og tekst bliver modtaget $api_id = $_GET["api_id"]; // id bliver modtaget $to = $_GET["to"]; // modtagerens mobilnummer bliver modtaget $teksttyppe = "Arial"; // skrifttyppe $width = "72"; // Tekst brede $height = "48"; // Tekst højde $italic = ""; // Tekst Kursiv $weight = "400"; // Tekst tykkelse $underline = ""; // Tekst Understreg $strikeout = ""; // Tekst Overstreg $orientation = "550"; // Tekst vinkel $linieafstand = 100; // Linie Afstand
if($user=='exp'){
$newtext = wordwrap($text, 20, chr(10)); // Her genereres der linieskift afmærkning
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font("Verdana", $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font); if ($text) { $text2 = wordwrap($text, 20, chr(10)); print_linebreak($text2); }
function print_linebreak($newtext, $lby = 10) { printer_draw_text($handle, strstr($newstext, chr(10), true), 10, $lby); $text3 = strstr($newstext, chr(10)); if ($text3) { $lby += $linieafstand; //afstand du vil offsette næste linie print_linebreak($text3, $lby); } } printer_delete_font($font);
printer_end_page($handle); printer_end_doc($handle); printer_close($handle); echo "<br><br>Har printet:<br> \"" . $newtext1 . "\" <br>Uden problemer. <br>Fra bruger " . $user . "<br>Beskeder er ikke sendt til " . $to . " da dette er en printer funktion<br><br><br><br>Forsøg:";
<?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 $teksttyppe = "Arial"; // 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
$handle = printer_open($printer); // skaber forbindelse til printeren via pc printer_start_doc($handle, $opgave_navn); printer_start_page($handle);
$font = printer_create_font("Verdana", $height, $width, $weight, $italic, $underline, $strikeout, -$orientation); // tekst oplysninger om den udskrevet tekst printer_select_font($handle, $font);
function print_linebreak($newtext, $lby = 10) { printer_draw_text($handle, strstr($newstext, chr(10), true), 10, $lby); $text3 = strstr($newstext, chr(10)); if ($text3) { $lby += 100; //afstand du vil offsette næste linie print_linebreak($text3, $lby); } }
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.