Avatar billede kodak Mester
20. august 2010 - 19:32 Der er 56 kommentarer og
1 løsning

sms linieskift

Jeg har lavet et script der modtager sms'er og printer dem ud men jeg skal bruge en kode for hvordan jeg får den til at skifte linie efter 50 tegn.

Jeg har prøvet med:
$text = "Hej til den "lange tekst" selv om den ikke er så lang."

wordwrap($text, 20, "<br />\n")

Men den skriver bare:
"Hej til den "lange t<br />[]ekst" selv om den ik<br />[]ke er så lang."

[] = en firkant

Er der nogen der har en ide til hvilke metoder for linieskift jeg kan smide ind.
Avatar billede ggxdg Nybegynder
20. august 2010 - 19:38 #1
http://blog.mobivity.com/?p=147

der er lidt om det på ovenstående link.
Håber det hjælper lidt.
Avatar billede kodak Mester
20. august 2010 - 19:45 #2
Den sidste php script som printer får text uden linieskift så jeg skal have sat komandoen ind inden den printer.
Avatar billede kodak Mester
20. august 2010 - 19:45 #3
bruger jeg 0×0A så skriver den bare 0×0A
Avatar billede majbom Novice
20. august 2010 - 19:45 #4
prøv nøjagtigt det her kode:

$text = 'Hej til den "lange tekst" selv om den ikke er så lang.';
echo wordwrap($text, 20, "<br />\n");
Avatar billede kodak Mester
20. august 2010 - 20:02 #5
det var den jeg skrev jeg havde prøvet.
Avatar billede kodak Mester
20. august 2010 - 20:05 #6
komandoen er fin jeg mangler bare at få det korrekte linieskift komando ind.

fejlen er nok at printeren udskriver html'et og ikke det browsede men hvids det er hvordan ændre jeg så det?
Avatar billede ggxdg Nybegynder
20. august 2010 - 20:08 #7
prøv

wordwrap($text, 20, chr(10))
Avatar billede ggxdg Nybegynder
20. august 2010 - 20:13 #8
hvilken "printer" bruger du? :P
Avatar billede kodak Mester
20. august 2010 - 20:19 #9
ggxpg > HP Color LaserJet 2600n
Avatar billede kodak Mester
20. august 2010 - 20:22 #10
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.
Avatar billede ggxdg Nybegynder
20. august 2010 - 20:39 #11
funky...
hmmmm...

hvordan fungerer scriptet?
Kan du smide det herind?
Avatar billede ggxdg Nybegynder
20. august 2010 - 20:51 #12
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
Avatar billede kodak Mester
20. august 2010 - 21:47 #13
Har prøvet med = Resultere i.


CrLf = CrLf
vbCrLf = vbCrLf
vbNewLine = vbNewLine
chr(13) = chr(13)
chr(13).chr(10) = chr(13).chr(10)


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);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
echo "Har printet \"" . $type . "\" Uden problemer. <br>Fra bruger " . $_GET["user"] . "<br>Beskeder er ikke sendt til " . $to = $_GET["to"] . " da dette er en printer funktion";
// dette script bliver skrevet til på følgendene måde http://192.168.100.3/sms-print.php?user=BRUGER&password=PASSWORD&api_id=ID&to=MOBILNR&text=Hello world.
// bruger kun http://192.168.100.3/sms-print.php?text=Hello world.
?>
Avatar billede ggxdg Nybegynder
21. august 2010 - 00:15 #14
putter du chr(13) i anførselstegn?

$newtext = wordwrap($text, 50, chr(13));

burde resultere i enten en firkant eller carrige return
Avatar billede kodak Mester
21. august 2010 - 00:25 #15
Har prøvet
tegn nr 37 og 81 laves om til firkant og de var begge mellemrum på linie.
Avatar billede ggxdg Nybegynder
21. august 2010 - 00:27 #16
ok... hvis printer_ funktionerne bruger "PJL" til at interface med, så burde

$newtext = wordwrap($text, 50, "<CR><LF>");

at fungere.


Lidt spændende læsning her:
http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl13208/bpl13208.pdf
hav lidt tålmodighed, det er en bette bog på 342 sider :P
Avatar billede ggxdg Nybegynder
21. august 2010 - 00:31 #17
PJL:
Printer Job Language.
Avatar billede kodak Mester
21. august 2010 - 00:34 #18
<CR><LF> forstod den som tekst og ikke kode
Avatar billede kodak Mester
21. august 2010 - 00:36 #19
komandoen bliver jo ikke sendt til printeren men til en printer_dll.dll fil på serveren som der den der forstår "printer" komandoer.

Serveren har:
PHP Version 5.2.6
Og er sat op til at måtte bruge:
extension=php_printer.dll
I php.ini filen.
Avatar billede ggxdg Nybegynder
21. august 2010 - 01:05 #20
Gad vide om wordwrap() escaper diverse tegn. Jeg tvivler, men jeg slynger lige en længere teststreng ud her.

//$newtext = wordwrap($text, 50, "\n");
$newtext = "1".chr(10)."2\n3<CR>4<LF>5".chr(13)."6 CrLf 7 vbCrLf 8".chr(13).chr(10)."9".chr(13)." ".chr(10)."10";

Jeg er godt nok snart løbet tør for idéer, det undrer mig at det ikke er til at finde andre med samme problem :s
Avatar billede ggxdg Nybegynder
21. august 2010 - 01:07 #21
og prøv lige at lave en echo på $newtext også
Avatar billede kodak Mester
21. august 2010 - 01:19 #22
Dette er hvad echo får frem:
1 2 345 6 CrLf 7 vbCrLf 8 9 10
UDEN LINIESKIFT

og udskriften viser:
1[]2[]3<CR>4<LF>5[]6 CrLf 7 vbCrLf 8[][]9[] []10
UDEN  LINIESKIFT
Avatar billede ggxdg Nybegynder
21. august 2010 - 01:37 #23
Aye caramba...

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

printf("ASCII: %c\n", $newtext);
printf("String: %s\n", $newtext);
Avatar billede kodak Mester
21. august 2010 - 02:05 #24
Har også prøvet med %0A både i script og i url.

Du skulle kunne følge med:
http://line-web.mine.nu:90/sms-print.php
Avatar billede kodak Mester
21. august 2010 - 02:26 #25
har også prøvet med:
%0A både i URL og i script.

Så kan du selv følge med:
http://line-web.mine.nu:90/sms-print.php
Avatar billede kodak Mester
21. august 2010 - 02:37 #26
her er scriptet jeg bruger:

http://www.php.net/manual/en/function.printer-draw-text.php
Måske kan du se noget jeg ikke har set.
Avatar billede ggxdg Nybegynder
21. august 2010 - 02:45 #27
på flg.:
http://www.dynamicdrive.com/forums/archive/index.php/t-36700.html
brydes linjen op, og så laves der flere "linjer" ved at kalde funktionen
printer_draw_text();
flere gange med forskelligt y offset.

f.eks.:


print_linebreak(wordwrap($text, 50, chr(10)));

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 offsæte næste linie
    print_linebreak($text2, $y);
  }
}


Jeg er lidt træt, så det er ikke sikkert det virker første gang
Avatar billede ggxdg Nybegynder
21. august 2010 - 02:50 #28
#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:

printer_draw_text($handle, "Linie 1", 10, 10);
printer_draw_text($handle, "Linie 2", 10, 110);
printer_draw_text($handle, "Linie 3", 10, 210);

bare for at se om det så funker...
Avatar billede kodak Mester
21. august 2010 - 02:53 #29
Det var også det jeg frygtede, men så skal jeg jo lave mange printer_draw_text en for hver linie der skal være mulighed for.


Foresten linket er sat til printeren så ikke bruge den hele natten.
Avatar billede ggxdg Nybegynder
21. august 2010 - 02:58 #30
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
Avatar billede kodak Mester
21. august 2010 - 03:03 #31
Har sat bruger på user=exp


Den melder fejl
når jeg bytter:
printer_draw_text($handle, $newtext, 10, 10);

ud med:
print_linebreak(wordwrap($text, 50, chr(10)));

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 offsæte næste linie
    print_linebreak($text2, $y);
  }
}
Avatar billede ggxdg Nybegynder
21. august 2010 - 03:08 #32
hvilken fejl kommer den med?

fungerer:
printer_draw_text($handle, "Linie 1", 10, 10);
printer_draw_text($handle, "Linie 2", 10, 110);
printer_draw_text($handle, "Linie 3", 10, 210);


eller:
if ($text) { print_linebreak(wordwrap($text, 50, chr(10))); }

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);
  }
}
Avatar billede ggxdg Nybegynder
21. august 2010 - 03:14 #33
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);
  }
}

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
echo "Har printet \"" . $type . "\" Uden problemer. <br>Fra bruger " . $_GET["user"] . "<br>Beskeder er ikke sendt til " . $to = $_GET["to"] . " da dette er en printer funktion";
// dette script bliver skrevet til på følgendene måde http://192.168.100.3/sms-print.php?user=BRUGER&password=PASSWORD&api_id=ID&to=MOBILNR&text=Hello world.
// bruger kun http://192.168.100.3/sms-print.php?text=Hello world.
?>
Avatar billede kodak Mester
21. august 2010 - 04:01 #34
og det virkede heller ikke den skrev samme fejl
Avatar billede repox Seniormester
21. august 2010 - 09:47 #35
Et gæt af historiske årsager ville være:
wordwrap($text, 20, "\r\n")
Avatar billede ggxdg Nybegynder
21. august 2010 - 10:23 #36
Hvis du har ret repox... Så ved jeg ikke lige hvad jeg gør.... jeg kan ikke fatte at det ikke er mellem mine efterhånden mange forslag :P



Hvis forslaget i #35 ikke fungerer, så prøv lige:

printer_draw_text($handle, "Linie 1", 10, 10);
printer_draw_text($handle, "Linie 2", 10, 110);
printer_draw_text($handle, "Linie 3", 10, 210)
Avatar billede kodak Mester
21. august 2010 - 13:43 #37
Bare rolig den havde jeg selv tænkt over men virkede heller ikke.
Avatar billede kodak Mester
21. august 2010 - 13:44 #38
og
#36 virker heller ikke
Avatar billede kodak Mester
21. august 2010 - 14:16 #39
Okay
printer_draw_text($handle, "Linie 1", 10, 10);
printer_draw_text($handle, "Linie 2", 10, 110);
Virker

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
Avatar billede kodak Mester
21. august 2010 - 14:25 #40
den melder fejl i
if ($text) { print_linebreak(wordwrap($text, 20, chr(10))); }
Avatar billede ggxdg Nybegynder
21. august 2010 - 14:34 #41
men hvilken fejl helt præcist?

Jeg kan da lige prøve at dele den lidt op:



if ($text) {
  $text2 = wordwrap($text, 20, chr(10));
  print_linebreak($text2);
}
Avatar billede kodak Mester
21. august 2010 - 14:38 #42
Call to undefined function print_linebreak() in C:\xampp\htdocs\sms-print2.php on line 32

d.v.s:
  print_linebreak($text2);
Avatar billede ggxdg Nybegynder
21. august 2010 - 14:38 #43
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 += 100; //afstand du vil offsette næste linie
    print_linebreak($text3, $lby);
  }
}
Avatar billede kodak Mester
21. august 2010 - 14:40 #44
Og foresten:
printer_delete_font($font);
er jo nød til at være under funktionen.
Avatar billede ggxdg Nybegynder
21. august 2010 - 14:40 #45
mangler den også "f" i "function" deklarationen, som den gjorde i det du pastede tidligere? altså:


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);
  }
}
Avatar billede ggxdg Nybegynder
21. august 2010 - 14:43 #46
Funktionen "eksisterer" der hvor du kalder den, så du kan placere funktionen hvor du lyster, så længe kaldet til den er placeret rigtigt.
Avatar billede kodak Mester
21. august 2010 - 14:44 #47
Med den #43

Melder den:
Fatal error: Call to undefined function print_linebreak() in C:\xampp\htdocs\sms-print2.php on line 32

Som er:
  print_linebreak($text2);
Avatar billede kodak Mester
21. august 2010 - 14:52 #48
Vi er ude i at den ser således ud:


<?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 = $_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:";

echo "Opgave fuldført";
}
else{
echo "user= felt skal udfyldes";
}
// dette script bliver skrevet til på følgendene måde http://192.168.100.3/sms-print.php?user=BRUGER&password=PASSWORD&api_id=ID&to=MOBILNR&text=Hello world.
// bruger kun http://192.168.100.3/sms-print.php?text=Hello world.
?>
Avatar billede ggxdg Nybegynder
21. august 2010 - 14:53 #49
<?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);
  }
}

if ($text) {
  $text2 = wordwrap($text, 20, chr(10));
  print_linebreak($text2);
}
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
echo "Har printet \"" . $type . "\" Uden problemer. <br>Fra bruger " . $_GET["user"] . "<br>Beskeder er ikke sendt til " . $to = $_GET["to"] . " da dette er en printer funktion";
// dette script bliver skrevet til på følgendene måde http://192.168.100.3/sms-print.php?user=BRUGER&password=PASSWORD&api_id=ID&to=MOBILNR&text=Hello world.
// bruger kun http://192.168.100.3/sms-print.php?text=Hello world.
?>


Bah... prøv lige ovenstående...
Avatar billede kodak Mester
21. august 2010 - 14:59 #50
#49
Warning: Wrong parameter count for strstr() in C:\xampp\htdocs\sms-print2.php on line 27

Warning: printer_draw_text(): supplied argument is not a valid Printer Handle resource in C:\xampp\htdocs\sms-print2.php on line 27

Som er:
  printer_draw_text($handle, strstr($newstext, chr(10), true), 10, $lby);
Avatar billede ggxdg Nybegynder
21. august 2010 - 15:06 #51
function print_linebreak($newtext, $lby = 10)
{
  $text4 = strstr($newstext, chr(10), true);
  printer_draw_text($handle, £text4, 10, $lby);
  $text3 = strstr($newstext, chr(10));
  if ($text3) {
    $lby += 100; //afstand du vil offsette næste linie
    print_linebreak($text3, $lby);
  }
}
Avatar billede ggxdg Nybegynder
21. august 2010 - 15:06 #52
function print_linebreak($newtext, $lby = 10)
{
  $text4 = strstr($newstext, chr(10), true);
  printer_draw_text($handle, $text4, 10, $lby);
  $text3 = strstr($newstext, chr(10));
  if ($text3) {
    $lby += 100; //afstand du vil offsette næste linie
    print_linebreak($text3, $lby);
  }
}
Avatar billede ggxdg Nybegynder
21. august 2010 - 15:08 #53
function print_linebreak($fhandle, $newtext, $lby = 10)
{
  $text4 = strstr($newstext, chr(10), true);
  printer_draw_text($fhandle, $text4, 10, $lby);
  $text3 = strstr($newstext, chr(10));
  if ($text3) {
    $lby += 100; //afstand du vil offsette næste linie
    print_linebreak($text3, $lby);
  }
}
if ($text) {
  $text2 = wordwrap($text, 20, chr(10));
  print_linebreak($handle, $text2);
}


så burde alt være der..
Avatar billede kodak Mester
21. august 2010 - 15:11 #54
#53

Warning: Wrong parameter count for strstr() in C:\xampp\htdocs\sms-print2.php on line 32

som er:

  $text4 = strstr($newstext, chr(10), true);
Avatar billede ggxdg Nybegynder
21. august 2010 - 15:32 #55
Ah... så understøtter din php version nok ikke den tredje parameter. prøv flg:

function print_linebreak($fhandle, $newtext, $lby = 10)
{
  $text4 = substr($newtext,strpos($newtext,chr(10)));
  printer_draw_text($fhandle, $text4, 10, $lby);
  $text3 = strstr($newstext, chr(10));
  if ($text3) {
    $lby += 100; //afstand du vil offsette næste linie
    print_linebreak($text3, $lby);
  }
}
if ($text) {
  $text2 = wordwrap($text, 20, chr(10));
  print_linebreak($handle, $text2);
}
Avatar billede kodak Mester
21. august 2010 - 15:45 #56
Nu er vi tilbage til der hvor vi laver firkanter igen.

Har oprettet spørgsmålet på ny for at tilføje point så lukker her.

Opgave enu ikke løst se mere her:

http://www.eksperten.dk/spm/916927
Avatar billede kodak Mester
21. august 2010 - 15:45 #57
LUKKER
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