Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TextOUt vs Unicode Text OUT with XE 6 (https://www.delphipraxis.net/186089-textout-vs-unicode-text-out-xe-6-a.html)

wschrabi 2. Aug 2015 20:30

TextOUt vs Unicode Text OUT with XE 6
 
Hallo,
ich komm einfach nicht weitere.
Die Version mit TEXTOUT klappt aber die Unicode Zeichen werden nicht dargestellt bzw werden wenn gegeben als ANSI umgemodelt.
Ich möchte aber UNICODE Zeichen machen. Ich sehe mit DrawTextW nichts am Printer Canvas (gedruckt in ein PDF.)
Kann mir jemand weiterhelfen?

Delphi-Quellcode:
{---------------------------------------------------------------------------}
  procedure TForm3.PrintNamezoomedout(xzoom,yzoom:INTEGER; x1,y1:word;Col:TColor; s:string);
  var
  //S: WideString;
   r: TRect;
  begin
  r := Rect((x1*28-28)*xzoom,-1*(y1*50)*yzoom,((x1+100)*28-28)*xzoom,-1*((y1+80)*50)*yzoom);
  r:= ClientRect;
  //S := 'This is the integral sign: '#$222b;
 
    Printer.Canvas.Font.Name := 'Arial';
    Printer.Canvas.Font.Style := [];
    Printer.Canvas.Font.Pitch := fpFixed;
    Printer.Canvas.Font.Height := 50;
    Printer.Canvas.Font.Color:=Col;
    //DrawTextW(Printer.Canvas.Handle, PWideChar(S), length(S), r, DT_SINGLELINE or   DT_CENTER or DT_VCENTER or DT_END_ELLIPSIS);
    Printer.Canvas.TextOUt((x1*28-28)*xzoom,-1*(y1*50)*yzoom,s);
  end;

 {----------------------------------------------------------------------------}

p80286 2. Aug 2015 22:10

AW: TextOUt vs Unicode Text OUT with XE 6
 
Könnte es sein, daß sich
Delphi-Quellcode:
fpfixed
und Arial nicht vertragen?

Gruß
K-H

wschrabi 3. Aug 2015 06:47

AW: TextOUt vs Unicode Text OUT with XE 6
 
Glaub ich nicht, bei TextOUT klappt es ja. werde mal ein Rechteck bei den r zeichnen, vielleicht ist das zu groß.

idefix2 3. Aug 2015 06:58

AW: TextOUt vs Unicode Text OUT with XE 6
 
Unsinn ist es auf alle Fälle. Arial ist keine fixed pitch Schrift. Vielleicht hilft es, wenn du das änderst.
Weil die eine Routine irgendwie mit Unsinn klarkommt, muss das bei der anderen nicht notwendigerweise der Fall sein.

Zum Testen würde ich mir den Druckercanvas in ein Picturecanvas kopieren und anschauen. Vielleicht spinnt der PDF Treiber (nicht sehr wahrscheinlich, aber möglich).

Uwe Raabe 3. Aug 2015 07:34

AW: TextOUt vs Unicode Text OUT with XE 6
 
Zitat:

Zitat von idefix2 (Beitrag 1310733)
Vielleicht spinnt der PDF Treiber (nicht sehr wahrscheinlich, aber möglich).

Wäre aber durchaus denkbar. Die Ausgabe von Arial fixed in einem TLabel klappt problemlos. Wenn jetzt die Windows-Logik auch für den PDF-Treiber gelten würde, sollte man keine Probleme erwarten. Wenn aber der Treiber sagt "Hey, Text kann ich selber - gib einfach her", dann kann es doch sein, daß der Treiber mangels eines Fixed Arial Font (den gibt es übrigens kostenpflichtig bei Monotype) einfach einen anderen Fixed Font nimmt, der aber mit dem Unicode nicht klar kommt.


@wschrabi: Welchen PDF-Treiber verwendest du denn hier? Vielleicht hat den ja der Eine oder Andere hier bei der Hand und kann das reproduzieren.

Bernhard Geyer 3. Aug 2015 08:14

AW: TextOUt vs Unicode Text OUT with XE 6
 
Ich vermute mal das die PDF-Implementierung Mist baut
Wir haben hier auch eine PDF-Komponente (für Java) und die macht bei (gemischten) Arabisch-Deutschen Texten auch mist was die Laufrichtung und die Reihenfolge betrifft.

wschrabi 3. Aug 2015 08:48

AW: TextOUt vs Unicode Text OUT with XE 6
 
Ich habs schon. Das RECT war viel zu gross und da er in die Mitte druckt habe ich es außerhalb des Blattes.
Wenn ich das r entsprechend kleiner mache, paßt es.
Besten Dank für die vielen Tips.
Schöne Grüße
:-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz