Beantwortet

Falsche Darstellung Umlaute

  • 17 February 2022
  • 3 Antworten
  • 146 Ansichten

Hallo,

wir haben eine falsche Darstellung der Umlaute.
Wir ziehen uns durch angepasstes Briefpapier ein Formular.
Wenn ich im Auftrag unter “interne Bemerkung” einen Text mit Umlauten (äöüß) schreibe kommt der so an:
 

äöüß

Wenn ich in dem Feld die Schriftart zum Beispiel auf Arial setze (vorher Default), ist die Darstellung OK.
Kann man generell die Default Schriftart in den Feldern auf Arial setzen?
Oder ist hier in dem angepasstem Briefpapier etwas falsch?

Gruß

Peter

icon

Beste Antwort von Peter Ting 22 February 2022, 13:10

Original anzeigen

3 Antworten

Benutzerebene 4
Abzeichen +3

Hallo Peter, 
Wir haben dein Thema im Team diskutiert. Manche Felder unterstützen nicht die automatische Umwandlung der Umlaute. Das liegt daran, dass diese Felder nicht dafür gedacht waren, auf den Belegen angezeigt zu werden. 

Hast du in den Grundeinstellungen die Option “HTML in Briefpapier und Text erlauben” aktiviert? Du kannst auch probieren den Inhalt mit einem Pretag zu übermitteln. Vielleicht kannst du deine Information auch besser in einem anderen Feld übermitteln, zB. Freitext oder Kopftext.
Wahrscheinlich wirst du noch ein bisschen ausprobieren müssen, welche Lösung für dich funktioniert. 

Beste Grüße, Johannes

Hallo Johannes,

habt ihr denn keinen direkten Hinweis wie man das fixen könnte?
Hier der Code des Teils vom Briefpapier, den es betrifft.

Es geht um den Part “internebemerkung”

private function renderHinweise()
{
$lineHeight = 5;
$xOffset = 10;
$yOffset = 27;

$sql = "SELECT * FROM auftrag WHERE id = " . $this->id;
$auftragsdaten = $this->app->DB->SelectArr($sql);

$this->setXY($xOffset, $yOffset);

$this->SetFont($this->GetFont(), '', 11);
$this->Cell(170, 10, 'Hinweise:', 0, 0, 'L');

$this->setXY($xOffset, $this->getY() + 5);
$this->SetFont($this->GetFont(), 'B', 11);

$hinweise = $auftragsdaten[0]['internebemerkung'];
$ydavor = $this->GetY();
$this->MultiCell(190, 10, $hinweise, 0, 'L');
$ydanach = $this->GetY();
$hoeheHinweis = $ydanach - $ydavor + 30;

$this->setXY($xOffset, $this->getY());
$this->Line($xOffset, $this->GetY(), 200, $this->GetY());

$this->globalYOffset = $hoeheHinweis;
$this->abseite2y = $hoeheHinweis + 10;

Übrigens, bei Freitext habe ich den gleichen Fehler!
Es ist doch bestimmt an der richtigen Stelle nur eine Kleinigkeit.

Die Option in den Grundeinstellungen ist gesetzt.

Gruß

Peter

Hallo,

habe die Lösung

 private function renderHinweise()
{
$lineHeight = 5;
$xOffset = 10;
$yOffset = 27;

$sql = "SELECT * FROM auftrag WHERE id = " . $this->id;
$auftragsdaten = $this->app->DB->SelectArr($sql);

$this->setXY($xOffset, $yOffset);

$this->SetFont($this->GetFont(), '', 11);
$this->Cell(170, 10, 'Hinweise:', 0, 0, 'L');

$this->setXY($xOffset, $this->getY() + 5);
// $this->SetFont($this->GetFont(), 'B', 11);
$this->SetFont('Arial', 'B', 11);
$hinweise = $auftragsdaten[0]['internebemerkung'];
$hinweiseneu = html_entity_decode($hinweise, ENT_QUOTES);
// $hinweiseneu = mb_convert_encoding($hinweise, "cp1252", "auto");
$ydavor = $this->GetY();
$this->MultiCell(190, 10, $hinweiseneu, 0, 'L');
$ydanach = $this->GetY();
$hoeheHinweis = $ydanach - $ydavor + 30;

$this->setXY($xOffset, $this->getY());
$this->Line($xOffset, $this->GetY(), 200, $this->GetY());

$this->globalYOffset = $hoeheHinweis;
$this->abseite2y = $hoeheHinweis + 10;

}

Ich bearbeite $hinweise mit html_entity_decode um und gebe es in $hinweiseneu aus.

Danach stimmt der Zeichensatz.

Gruß

Peter

Antworten