FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com
FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Merhaba
Delphi 7 ve FastReport 2.51 kullanıyorum.
İngilizcem pek iyi değil.
Bu yüzden FastReportun sitesinden faydalanamıyorum.
FastReportda hazırlanan bir raporu PsfrPDFExport isimli bileşeni kullanarak PDF olarak kaydedebiliyorsunuz.
Çok da güzel kaydediyor.
Fakat Türkçe karakterler sorun oluyor.
Bu problemi nasıl giderebilirim.
PsfrPDFExport.pas isimli dosyada biraz araştırma yaptım ama birşey bulamadım.
Teşekkürler
Delphi 7 ve FastReport 2.51 kullanıyorum.
İngilizcem pek iyi değil.
Bu yüzden FastReportun sitesinden faydalanamıyorum.
FastReportda hazırlanan bir raporu PsfrPDFExport isimli bileşeni kullanarak PDF olarak kaydedebiliyorsunuz.
Çok da güzel kaydediyor.
Fakat Türkçe karakterler sorun oluyor.
Bu problemi nasıl giderebilirim.
PsfrPDFExport.pas isimli dosyada biraz araştırma yaptım ama birşey bulamadım.
Teşekkürler
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
arkadaşlar ben fastreport 2.4 kullanıyorum ve ıluşturulan raporlarımı PDF e export etemem gerek acil olarak. bunu yapacak bileşeni veya yöntemi açıkça söylersenin memnun olurum.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Biz de Rave'de benzeri sorunu yaşıyorduk ve Gnostice adlı bileşen seti ile sorunu hallettik ve çok daha farklı dosya biçimlerinde gayet başarılı çıktılar veriyor. Tabi bileşen sadece Rave için değil bir çok raporlama aracıyla uyumlu.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
cevabın için teşk hocam. ama burada .frp dosyası ile ilgili bişey söylemiyor. yani fastreport için convert falan demiyor.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
VCL Components - Delphi, C++Builder başlığı altında detaylı açıklamalar yazıyor. İlgilenmen gereken paket bu.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
hocam indirdim ama kurulumda problem çıkmaz inşallah.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
iyide abicim. bu trial. ben bunu nasıl kullanacam ki?. tek seferelik kullanmak için o kadar para mı vereyim yani(programdan pahalı).
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Bu tür araçların piyasası malesef bu. Zaten başka başlık altında yazdığım raporlama aracı geliştirmek isteyişimin sebebi de bu gibi maddi sebeplerdi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
FastReport 3 ve 4'de pdf export componentleri standart geliyor. Bu durumda upgrade etmek daha mantıklı gibi.
2.x serisi için harici componentler var, ve hepsi de paralı satılıyor.
Kolay gelsin.
2.x serisi için harici componentler var, ve hepsi de paralı satılıyor.
Kolay gelsin.
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
mussimsek
iyi de hocam. 3 ve 4 paralı değil mi? benim 2.4 free Zaten.FastReport 3 ve 4'de pdf export componentleri standart geliyor. Bu durumda upgrade etmek daha mantıklı gibi.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Aklıma öeyle bişey geldi.
report oluşturulup prepare edildikten sonra. ben kaç sayfa varsa ona göre sayfalara ulaşıp sayfalardaki memoView ların değerlerini bir döngü içinde çeksem olur gibi. ama nasıl???
report oluşturulup prepare edildikten sonra. ben kaç sayfa varsa ona göre sayfalara ulaşıp sayfalardaki memoView ların değerlerini bir döngü içinde çeksem olur gibi. ama nasıl???
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Arkadaşlar PowerPDF bileşini ile fastreporttan PDF e göndermeyi hallettim. Ama şimdide Türkçe Problemim var. PowerPDf bileşeninin PDFFont.pas dosyasını inceledim. Orada sadece fnArial, FixedWidth ve fnTimesRoman kendi font tipleri var. Encoding diye WinAnsiEncoding tanımlanıyor. bi bakın Allah aşkına kafayı yiyecem.
Kod: Tümünü seç
{*
* << P o w e r P d f >> -- PdfFonts.pas
*
* << Standerd font set for WinAnsiEncoding Charactors >>
*
* Copyright (c) 1999-2001 Takezou. <takeshi_kanno@est.hi-ho.ne.jp>
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Library General Public License as published
* by the Free Software Foundation; either version 2 of the License, or any
* later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
* details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library.
*
* Create 2000.09.14
*
*}
unit PdfFonts;
interface
uses
SysUtils, Classes, PdfDoc, PdfTypes;
const
TYPE1_FONT_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
(KEY: 'Type'; VAL: 'Font'),
(KEY: 'Subtype'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
// FixedWidth defination
FIXED_WIDTH_W_ARRAY: array[32..255] of Integer = (
600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600);
FIXED_WIDTH_INT_TABLE: array[0..1] of TPDF_INT_TBL =(
(KEY: 'FirstChar'; VAL: 32),
(KEY: 'LastChar'; VAL: 255)
);
FIXED_WIDTH_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
(KEY: 'Type'; VAL: 'FontDescriptor'),
(KEY: 'FontName'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
FIXED_WIDTH_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 833),
(KEY: 'CapHeight'; VAL: 833),
(KEY: 'Descent'; VAL: -300),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET + PDF_FONT_FIXED_WIDTH),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 600));
FIXED_WIDTH_BBOX: array[0..3] of Integer = (-103,-300,836,833);
// FixedWidth-Bold defination
FIXED_WIDTH_BOLD_W_ARRAY: array[32..255] of Integer = (
600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600);
FIXED_WIDTH_BOLD_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 833),
(KEY: 'CapHeight'; VAL: 833),
(KEY: 'Descent'; VAL: -300),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_FOURCE_BOLD + PDF_FONT_FIXED_WIDTH),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 600));
FIXED_WIDTH_BOLD_BBOX: array[0..3] of Integer = (-46,-300,702,833);
// FixedWidth-Italic defination
FIXED_WIDTH_ITALIC_W_ARRAY: array[32..255] of Integer = (
600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600);
FIXED_WIDTH_ITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 833),
(KEY: 'CapHeight'; VAL: 833),
(KEY: 'Descent'; VAL: -300),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_FIXED_WIDTH),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 600));
FIXED_WIDTH_ITALIC_BBOX: array[0..3] of Integer = (-67,-300,800,833);
// FixedWidth-BoldItalic defination
FIXED_WIDTH_BOLDITALIC_W_ARRAY: array[32..255] of Integer = (
600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,
600,600);
FIXED_WIDTH_BOLDITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 833),
(KEY: 'CapHeight'; VAL: 833),
(KEY: 'Descent'; VAL: -300),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_FIXED_WIDTH + PDF_FONT_FOURCE_BOLD),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 600));
FIXED_WIDTH_BOLDITALIC_BBOX: array[0..3] of Integer = (-103,-300,836,833);
// Arial definition
ARIAL_W_ARRAY: array[32..255] of Integer = (
278,278,355,556,556,889,667,191,333,333,389,584,278,333,
278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,
584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,
722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,
469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,
556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,
584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,
611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,
500,667,0,333,556,556,556,556,260,556,333,737,370,556,584,0,
737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,
834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,
278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,
278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,
556,500);
ARIAL_INT_TABLE: array[0..1] of TPDF_INT_TBL = (
(KEY: 'FirstChar'; VAL: 32),
(KEY: 'LastChar'; VAL: 255)
);
ARIAL_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL = (
(KEY: 'Type'; VAL: 'FontDescriptor'),
(KEY: 'FontName'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
ARIAL_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL = (
(KEY: 'Ascent'; VAL: 905),
(KEY: 'CapHeight'; VAL: 905),
(KEY: 'Descent'; VAL: -212),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 750)
);
ARIAL_BBOX: array[0..3] of Integer = (-166,-225,1000,931);
// Arial-Bold definition
ARIAL_BOLD_W_ARRAY: array[32..255] of Integer = (
278,333,474,556,556,889,722,238,333,333,389,584,278,333,
278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,
584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,
722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,
584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,
611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,
584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,
611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,
500,667,0,333,556,556,556,556,280,556,333,737,370,556,584,0,
737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,
834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,
278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,
278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,
611,556);
ARIAL_BOLD_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 905),
(KEY: 'CapHeight'; VAL: 905),
(KEY: 'Descent'; VAL: -212),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_FOURCE_BOLD),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 750)
);
ARIAL_BOLD_BBOX: array[0..3] of Integer = (-170,-228,1003,962);
// Arial-Italic definition
ARIAL_ITALIC_W_ARRAY: array[32..255] of Integer = (
278,278,355,556,556,889,667,191,333,333,389,584,278,333,
278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,
584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,
722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,
469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,
556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,
584,0,556,0,222,556,333,1000,556,556,333,1000,667,333,1000,0,
611,0,0,222,222,333,333,350,556,1000,333,1000,500,333,944,0,
500,667,0,333,556,556,556,556,260,556,333,737,370,556,584,0,
737,333,400,584,333,333,333,556,537,278,333,333,365,556,834,834,
834,611,667,667,667,667,667,667,1000,722,667,667,667,667,278,278,
278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,
278,278,556,556,556,556,556,556,556,584,611,556,556,556,556,500,
556,500);
ARIAL_ITALIC_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
(KEY: 'Type'; VAL: 'FontDescriptor'),
(KEY: 'FontName'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
ARIAL_ITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 905),
(KEY: 'CapHeight'; VAL: 905),
(KEY: 'Descent'; VAL: -212),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 750)
);
ARIAL_ITALIC_BBOX: array[0..3] of Integer = (-170,-225,1116,931);
// Arial-BoldItalic definition
ARIAL_BOLDITALIC_W_ARRAY: array[32..255] of Integer = (
278,333,474,556,556,889,722,238,333,333,389,584,278,333,
278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,
584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,
722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,
584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,
611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,
584,0,556,0,278,556,500,1000,556,556,333,1000,667,333,1000,0,
611,0,0,278,278,500,500,350,556,1000,333,1000,556,333,944,0,
500,667,0,333,556,556,556,556,280,556,333,737,370,556,584,0,
737,333,400,584,333,333,333,611,556,278,333,333,365,556,834,834,
834,611,722,722,722,722,722,722,1000,722,667,667,667,667,278,278,
278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,
667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,
278,278,611,611,611,611,611,611,611,584,611,611,611,611,611,556,
611,556);
ARIAL_BOLDITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 905),
(KEY: 'CapHeight'; VAL: 905),
(KEY: 'Descent'; VAL: -212),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_FOURCE_BOLD),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 750));
ARIAL_BOLDITALIC_BBOX: array[0..3] of Integer = (-174,-228,1114,962);
// Times definition
TIMES_ROMAN_W_ARRAY: array[32..255] of Integer = (
250,333,408,500,500,833,778,180,333,333,500,564,250,333,
250,278,500,500,500,500,500,500,500,500,500,500,278,278,564,564,
564,444,921,722,667,667,722,611,556,722,722,333,389,722,611,889,
722,722,556,722,667,556,611,722,722,944,722,722,611,333,278,333,
469,500,333,444,500,444,500,444,333,500,500,278,278,500,278,778,
500,500,500,500,333,389,278,500,500,722,500,500,444,480,200,480,
541,0,500,0,333,500,444,1000,500,500,333,1000,556,333,889,0,
611,0,0,333,333,444,444,350,500,1000,333,980,389,333,722,0,
444,722,0,333,500,500,500,500,200,500,333,760,276,500,564,0,
760,333,400,564,300,300,333,500,453,250,333,300,310,500,750,750,
750,444,722,722,722,722,722,722,889,667,611,611,611,611,333,333,
333,333,722,722,722,722,722,722,722,564,722,722,722,722,722,722,
556,500,444,444,444,444,444,444,667,444,444,444,444,444,278,278,
278,278,500,500,500,500,500,500,500,564,500,500,500,500,500,500,
500,500);
TIMES_INT_TABLE: array[0..1] of TPDF_INT_TBL = (
(KEY: 'FirstChar'; VAL: 32),
(KEY: 'LastChar'; VAL: 255)
);
TIMES_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
(KEY: 'Type'; VAL: 'FontDescriptor'),
(KEY: 'FontName'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
TIMES_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 891),
(KEY: 'CapHeight'; VAL: 891),
(KEY: 'Descent'; VAL: -216),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_SERIF),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 778)
);
TIMES_BBOX: array[0..3] of Integer = (-168,-218,1000,898);
// Times-Italic definition
TIMES_ITALIC_W_ARRAY: array[32..255] of Integer = (
250,333,420,500,500,833,778,214,333,333,500,675,250,333,
250,278,500,500,500,500,500,500,500,500,500,500,333,333,675,675,
675,500,920,611,611,667,722,611,611,722,722,333,444,667,556,833,
667,722,611,722,611,500,556,722,611,833,611,556,556,389,278,389,
422,500,333,500,500,444,500,444,278,500,500,278,278,444,278,722,
500,500,500,500,389,389,278,500,444,667,444,444,389,400,275,400,
541,0,500,0,333,500,556,889,500,500,333,1000,500,333,944,0,
556,0,0,333,333,556,556,350,500,889,333,980,389,333,667,0,
389,556,0,389,500,500,500,500,275,500,333,760,276,500,675,0,
760,333,400,675,300,300,333,500,523,250,333,300,310,500,750,750,
750,500,611,611,611,611,611,611,889,667,611,611,611,611,333,333,
333,333,722,667,722,722,722,722,722,675,722,722,722,722,722,556,
611,500,500,500,500,500,500,500,667,444,444,444,444,444,278,278,
278,278,500,500,500,500,500,500,500,675,500,500,500,500,500,444,
500,444);
TIMES_ITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 891),
(KEY: 'CapHeight'; VAL: 891),
(KEY: 'Descent'; VAL: -216),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_SERIF + PDF_FONT_ITALIC),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 778));
TIMES_ITALIC_BBOX: array[0..3] of Integer = (-169,-217,1010,883);
// Times-BOLD definition
TIMES_BOLD_W_ARRAY: array[32..255] of Integer = (
250,333,555,500,500,1000,833,278,333,333,500,570,250,333,
250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,
570,500,930,722,667,722,722,667,611,778,778,389,500,778,667,944,
722,778,611,778,722,556,667,722,722,1000,722,722,667,333,278,333,
581,500,333,500,556,444,556,444,333,500,556,278,333,556,278,833,
556,500,556,556,444,389,333,556,500,722,500,500,444,394,220,394,
520,0,500,0,333,500,500,1000,500,500,333,1000,556,333,1000,0,
667,0,0,333,333,500,500,350,500,1000,333,1000,389,333,722,0,
444,722,0,333,500,500,500,500,220,500,333,747,300,500,570,0,
747,333,400,570,300,300,333,556,540,250,333,300,330,500,750,750,
750,500,722,722,722,722,722,722,1000,722,667,667,667,667,389,389,
389,389,722,722,778,778,778,778,778,570,778,722,722,722,722,722,
611,556,500,500,500,500,500,500,722,444,444,444,444,444,278,278,
278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,500,
556,500);
TIMES_BOLD_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 891),
(KEY: 'CapHeight'; VAL: 891),
(KEY: 'Descent'; VAL: -216),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_SERIF + PDF_FONT_FOURCE_BOLD),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 778));
TIMES_BOLD_BBOX: array[0..3] of Integer = (-168,-218,1000,935);
// Times-BoldItalic definition
TIMES_BOLDITALIC_W_ARRAY: array[32..255] of Integer = (
250,389,555,500,500,833,778,278,333,333,500,570,250,333,
250,278,500,500,500,500,500,500,500,500,500,500,333,333,570,570,
570,500,832,667,667,667,722,667,667,722,778,389,500,667,611,889,
722,722,611,722,667,556,611,722,667,889,667,611,611,333,278,333,
570,500,333,500,500,444,500,444,333,500,556,278,278,500,278,778,
556,500,500,500,389,389,278,556,444,667,500,444,389,348,220,348,
570,0,500,0,333,500,500,1000,500,500,333,1000,556,333,944,0,
611,0,0,333,333,500,500,350,500,1000,333,1000,389,333,722,0,
389,611,0,389,500,500,500,500,220,500,333,747,266,500,606,0,
747,333,400,570,300,300,333,576,500,250,333,300,300,500,750,750,
750,500,667,667,667,667,667,667,944,667,667,667,667,667,389,389,
389,389,722,722,722,722,722,722,722,570,722,722,722,722,722,611,
611,500,500,500,500,500,500,500,722,444,444,444,444,444,278,278,
278,278,500,556,500,500,500,500,500,570,500,556,556,556,556,444,
500,444);
TIMES_BOLDITALIC_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 891),
(KEY: 'CapHeight'; VAL: 891),
(KEY: 'Descent'; VAL: -216),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET +
PDF_FONT_SERIF + PDF_FONT_FOURCE_BOLD),
(KEY: 'ItalicAngle'; VAL: -15),
(KEY: 'StemV'; VAL: 156),
(KEY: 'MissingWidth'; VAL: 778));
TIMES_BOLDITALIC_BBOX: array[0..3] of Integer = (-200,-218,996,921);
SCRIPT_W_ARRAY: array[32..255] of Integer = (
323,202,323,424,404,485,525,202,283,283,323,525,202,525,202,444,
404,404,404,404,404,404,404,404,404,404,202,202,485,525,485,364,
545,404,465,404,465,404,404,465,485,343,303,485,384,667,485,424,
505,444,505,404,384,485,465,566,485,465,424,283,283,283,444,323,
222,323,283,222,323,202,162,303,303,141,141,283,162,505,364,283,
303,303,263,222,182,303,303,424,323,303,283,283,162,283,485,202,
202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
202,222,202,202,202,202,202,202,202,202,202,202,202,202,202,202,
202,202,222,384,283,465,162,283,404,283,323,404,404,404,283,404,
404,404,404,404,404,384,424,404,404,404,283,404,404,404,404,364,
404,404,404,404,404,404,566,404,404,404,404,404,343,343,343,343,
465,485,424,424,424,424,424,323,404,485,485,485,485,465,444,444,
323,323,323,323,323,323,384,222,202,202,202,202,141,141,141,141,
283,364,283,283,283,283,283,404,283,303,303,303,303,303,384,303
);
SCRIPT_INT_TABLE: array[0..1] of TPDF_INT_TBL = (
(KEY: 'FirstChar'; VAL: 32),
(KEY: 'LastChar'; VAL: 255)
);
SCRIPT_DISC_STR_TABLE: array[0..2] of TPDF_STR_TBL =(
(KEY: 'Type'; VAL: 'FontDescriptor'),
(KEY: 'FontName'; VAL: 'Type1'),
(KEY: 'Encoding'; VAL: 'WinAnsiEncoding')
);
SCRIPT_DISC_INT_TABLE: array[0..6] of TPDF_INT_TBL =(
(KEY: 'Ascent'; VAL: 758),
(KEY: 'CapHeight'; VAL: 758),
(KEY: 'Descent'; VAL: -363),
(KEY: 'Flags'; VAL: PDF_FONT_STD_CHARSET + PDF_FONT_ITALIC),
(KEY: 'ItalicAngle'; VAL: 0),
(KEY: 'StemV'; VAL: 78),
(KEY: 'MissingWidth'; VAL: 202));
SCRIPT_BBOX: array[0..3] of Integer = (-184,-363,505,758);
type
TPdfType1Font = class(TPdfFont)
private
FFirstChar: Byte;
FLastChar: Byte;
FArray: array[0..255] of Word;
public
procedure SetData(Value: TPdfDictionary); override;
function GetCharWidth(AText: string; APos: integer): integer; override;
end;
TPdfFixedWidth = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfFixedWidthBold = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfFixedWidthItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfFixedWidthBoldItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfArial = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfArialBold = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfArialItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfArialBoldItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfTimesRoman = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfTimesBold = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfTimesItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfTimesBoldItalic = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
TPdfScript = class(TPdfType1Font)
public
constructor Create(AXref: TPdfXref; AName: string); override;
end;
implementation
{ TPdfType1Font }
function TPdfType1Font.GetCharWidth(AText: string; APos: integer): integer;
begin
result := FArray[ord(AText[APos])];
end;
procedure TPdfType1Font.SetData(Value: TPdfDictionary);
var
i: integer;
DefaultWidth: Word;
Widths: TPdfArray;
begin
inherited SetData(Value);
// initialize char widths array by default value (if missing width parameter
// is defined, use it as default value.)
if Data.PdfNumberByName('MissingWidth') <> nil then
DefaultWidth := Data.PdfNumberByName('MissingWidth').Value
else
DefaultWidth := 0;
for i := 0 to 255 do
FArray[i] := DefaultWidth;
FFirstChar := Data.PdfNumberByName('FirstChar').Value;
FLastChar := Data.PdfNumberByName('LastChar').Value;
// fill width array with "Widths" table values.
Widths := Data.PdfArrayByName('Widths');
for i := 0 to Widths.ItemCount - 1 do
FArray[i + FFirstChar] := TPdfNumber(Widths.Items[i]).Value;
end;
{ FixedWidth }
constructor TPdfFixedWidth.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
// make instance of TPdfDictionary and register to Xref table.
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
// adding element to the dictionary.
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier'));
// create "Width" table of the font.
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthBold }
constructor TPdfFixedWidthBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthItalic }
constructor TPdfFixedWidthItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-Oblique'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ FixedWidthBoldItalic }
constructor TPdfFixedWidthBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, FIXED_WIDTH_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Courier-BoldOblique'));
FWidths := TPdfArray.CreateNumArray(AXref, FIXED_WIDTH_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial }
constructor TPdfArial.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-Bold }
constructor TPdfArialBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-Italic }
constructor TPdfArialItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-Oblique'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ Arial-BoldItalic }
constructor TPdfArialBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, ARIAL_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Helvetica-BoldOblique'));
FWidths := TPdfArray.CreateNumArray(AXref, ARIAL_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesRoman }
constructor TPdfTimesRoman.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Roman'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_ROMAN_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesBold }
constructor TPdfTimesBold.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Bold'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_BOLD_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesItalic }
constructor TPdfTimesItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-Italic'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_ITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfTimesBoldItalic }
constructor TPdfTimesBoldItalic.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, TIMES_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Times-BoldItalic'));
FWidths := TPdfArray.CreateNumArray(AXref, TIMES_BOLDITALIC_W_ARRAY);
FFont.AddInternalItem('Widths', FWidths);
SetData(FFont);
end;
{ TPdfScript }
constructor TPdfScript.Create(AXref: TPdfXref; AName: string);
var
FWidths: TPdfArray;
FFontDescriptor: TPdfDictionary;
FFont: TPdfDictionary;
begin
inherited Create(AXref, AName);
FFont := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFont);
AddStrElements(FFont, TYPE1_FONT_STR_TABLE);
AddIntElements(FFont, SCRIPT_INT_TABLE);
FFont.AddItem('BaseFont', TPdfName.CreateName('Script'));
FFontDescriptor := TPdfDictionary.CreateDictionary(AXref);
AXref.AddObject(FFontDescriptor);
AddStrElements(FFontDescriptor, SCRIPT_DISC_STR_TABLE);
AddIntElements(FFontDescriptor, SCRIPT_DISC_INT_TABLE);
FFontDescriptor.AddItem('FontBBox',
TPdfArray.CreateNumArray(AXref, SCRIPT_BBOX));
FFont.AddItem('FontDescriptor', FFontDescriptor);
FWidths := TPdfArray.CreateNumArray(AXref, SCRIPT_W_ARRAY);
FFont.AddItem('Widths', FWidths);
SetData(FFont);
end;
initialization
RegisterClassAlias(TPdfFixedWidth, 'FixedWidth');
RegisterClassAlias(TPdfFixedWidthBold, 'FixedWidth-Bold');
RegisterClassAlias(TPdfFixedWidthBoldItalic, 'FixedWidth-BoldItalic');
RegisterClassAlias(TPdfFixedWidthItalic, 'FixedWidth-Italic');
RegisterClassAlias(TPdfArial, 'Arial');
RegisterClassAlias(TPdfArialBold, 'Arial-Bold');
RegisterClassAlias(TPdfArialBoldItalic, 'Arial-BoldItalic');
RegisterClassAlias(TPdfArialItalic, 'Arial-Italic');
RegisterClassAlias(TPdfTimesRoman, 'Times-Roman');
RegisterClassAlias(TPdfTimesBold, 'Times-Bold');
RegisterClassAlias(TPdfTimesItalic, 'Times-Italic');
RegisterClassAlias(TPdfTimesBoldItalic, 'Times-BoldItalic');
// RegisterClassAlias(TPdfScript, 'Script');
// RegisterClassAlias(TPdfSymbol, 'Symbol');
finalization
UnRegisterClass(TPdfFixedWidth);
UnRegisterClass(TPdfFixedWidthBold);
UnRegisterClass(TPdfFixedWidthBoldItalic);
UnRegisterClass(TPdfFixedWidthBold);
UnRegisterClass(TPdfArial);
UnRegisterClass(TPdfArialBold);
UnRegisterClass(TPdfArialBoldItalic);
UnRegisterClass(TPdfArialBold);
UnRegisterClass(TPdfTimesRoman);
UnRegisterClass(TPdfTimesBold);
UnRegisterClass(TPdfTimesItalic);
UnRegisterClass(TPdfTimesBoldItalic);
// UnRegisterClass(TPdfScript);
// UnRegisterClass(TPdfSymbol);
end.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Re: FastReport da PDF Export Yaparken Türkçe Karakter Sorunu
Bu konuda sıkıntı çekenler için cevap yazayım az önce başıma geldi ve şu şekilde çözdüm.
Fastreport 4.0 versionunda frxPDFExport1.EmbeddedFonts:=True;
yazarsanız türkçe karakterleriniz gözüküyor.
İyi çalışmalar
Fastreport 4.0 versionunda frxPDFExport1.EmbeddedFonts:=True;
yazarsanız türkçe karakterleriniz gözüküyor.
İyi çalışmalar