Einzelnen Beitrag anzeigen

Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: QuickPDF (7.21) und Unicode

  Alt 5. Jan 2011, 08:13
Servus,

mit welcher Delphi-Version arbeitest Du denn: 2009 oder höher oder noch einer nicht Unicode-Version. Poste doch mal einen Text, den Du ausgeben willst und ich bastel hier mal ein Testprogramm zusammen.

edit: hab's grad mal mit Delphi 2010 getestet: da kommt wirklich nur Müll raus. Aber was funktionierte war der Umweg über die FontSubsets:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ansistrText: ansistring;
  ansistrText2: ansistring;
  lOldOrigin: integer;
  lPDF: TQuickPDF;
  strText: string;
  strText2: string;
begin
  strText := 'İnsan oğulları üzerine ecdadım Bumın';
  strText2 := 'ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ ฐ ฑ ฒ ณ ด ต ถ ท ธ น';

  lPDF := TQuickPDF.Create;
  try
    lPDF.UnlockKey('...');
    lPDF.LoadFromFile('test_unicode.pdf');
    with lPDF do
      begin
        lOldOrigin := GetOrigin;
        SelectPage(1);

        AddStandardFont(8);

        SelectFont(8);
        SetOrigin(1);
        SetTextColor(1, 0, 0);
        SetTextSize(18);

        // Turkish
        AddSubsettedFont('TimesRoman', 13, strText);
        ansistrText := GetSubsetString(strText);
        DrawRotatedText(30,30,0, ansistrText);

        // Thai
        AddSubsettedFont('TimesRoman', 15, strText2);
        ansistrText2 := GetSubsetString(strText2);

        DrawRotatedText(30,200,0, ansistrText2);

        SetOrigin(lOldOrigin);

        lPDF.RenderPageToFile(150, 1, 1, 'testimg.jpg');

        SaveToFile('result.pdf');

      end;
  finally
    lPDF.Free;
  end;
end;
Grüße,
Uli

Geändert von ULIK ( 5. Jan 2011 um 08:54 Uhr)
  Mit Zitat antworten Zitat