Das ist insofern ärgerlich, weil dann am Browser mitten in den Befehlen Umbrüche auftauchen, die den Inhalt kaputtmachen. Beispiel eines SVG:
Code: Alles auswählen
WriteLn(' <g id="' + stitle + '" font-family="' + sfont + '" font-size="' + IntToStr(ssize) + '" fill="#' + IntToHex(scol, 6) + '">');
txt := ' <circle cx="' + IntToStr(xpos) + '" cy="' + IntToStr(ypos) + '" r="' + IntToStr(rad) + '" stroke="#' + IntToHex(scol, 6) + '" stroke-width="' + IntToStr(sline) + '" fill="#' + IntToHex(sfill, 6) + '" />';
WriteLn(txt);
Code: Alles auswählen
<g id="legend" font-family="Roboto, Tahoma, Verdana, sans-serif" font-size="120" fill="#D0D0D0">
<circle cx="6772" cy="80" r="30" stroke="#FF00FF" stroke-width="0" fill="#FF00FF" />
wird zu
Code: Alles auswählen
<g id="legend" font-family="Roboto, Tahoma, Verdana, sans-serif" font-size="12
0" fill="#D0D0D0">
<circle cx="6772" cy="80" r="30" stroke="#FF00FF" stroke-width="0" fill="#FF
00FF" />
Hier wird aus der font-size 120 eine 12 und das fill bei circle wird ignoriert. Bei Linienpfaden mit richtig vielen Punkten wird die Linie komplett unbrauchbar.
Schreibe ich die Ausgabe dagegen in eine normale Textdatei, wird die komplette Zeile ohne Umbruch ausgegeben und das SVG ist lesbar.
Wie kann ich den Umbruch nach 80 Zeichen beim Schreiben in die Standardausgabe unterdrücken oder auf einige tausend Zeichen hinausschieben?
Es macht auch keinen Unterschied, ob ich die Ausgabe mit WriteLn('content-type:text/html);WriteLn; starte oder mit WriteLn('content-type:image/svg+xml);WriteLn;, wie es für SVG richtig wäre. Auch ist das SVG bis auf die unerwünschten Umbrüche in sich konsistent, hat das richtige Encoding, das funktioniert alles.