Home Devices
New Blog Posts: Merging Reports - Part 1 and Part 2

PDF export issues

edited August 2010 in Devices
Hi

I have 2 issues with pdf export.

1. I set PDFSettings.EmbedFontOptions := [efAllFonts]. I tried setting
fontencode to ansi and unicode. But I'm having trouble with turkish chars.

2. I'm also using wptools and printing rtf with RB (using ppWptools vcl
supplied by wptools). Both paper prints and previews are fine but I have
quality issues when exported to PDF. I think the rtf is exported as
image and fonts aren't rendered well in pdf.

Any ideas

D2007, RB12.01, Wptools6

Best regards

Bora Aydemir

Comments

  • edited August 2010
    Hi Bora,

    1. Delphi 2007 does not support Unicode. You will need to upgrade to
    Delphi 2009 or later to use the Unicode features of ReportBuilder (including
    PDF). For non-Unicode versions of Delphi, ReportBuilder currently supports
    6 different encodings. Unfortunately the Turkish charset is not currently
    supported. This may be something we research for a later release however it
    would require that you have your machine locale set to Turkish to function.
    My recommendation is to upgrade to a Unicode version of Delphi if you wish
    to use Unicode characters.

    2. The PDF device creates and registers a "Renderer" for each drawcommand
    that is sent. If the drawcommand is not recognized (ie. WPTools) a generic
    renderer is created and a bitmap representation of the drawcommand is
    exported to the PDF file. For a higher quality output, the creators of
    WPTools would need to create and register their own Renderer and register it
    with the PDF device.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited August 2010
    Hi

    All the machines are using turkish locale. I am willing to help add
    turkish locale if its possible.

    I am considering upgrading to Delphi2010 but not before 3-4 months.

    I was using RB 10.08, WPtools 5 and ExtraDevices 3.0 before with no
    problems whatsoever (export pdf both with turkish chars and high quality
    rendered WPTools RTF). After I upgraded, I have a few problems with
    ExtraDevices and can't get any support from James Waler. So I'm trying
    to use PDF export of RB (this was my main motivation on upgrading to
    RB12). Now I can't get pdf export from niether Extradevices nor RB :(

    Best Regards

    Bora Aydemir

    24/08/2010 23:01, Nico Cizik (Digital Metaphors) yazmis:
  • edited August 2010
    Hi Bora,

    I will take a look at adding ANSI Turkish support for the next release of
    ReportBuilder. This however involves a long process of finding the
    difference between the Latin and Turkish codepages, then correlating those
    differences to the Adobe glyph names and defining them in a "differences"
    table (ppPDFEncoding.pas).

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited August 2010
    Hi Nico,

    I had done some research. The CodePage for turkish is 1254, CharSet is 162

    /Differences ['
    '208 /Gbreve'
    '221 /Idotaccent'
    '222 /Scedilla'
    '240 /gbreve'
    '253 /dotlessi'
    '254 /scedilla'
    ']'

    I will try to add it to ppPDFEncoding.pas (if I can) and let you know

    Best Regards

    Bora Aydemir



    25/08/2010 17:08, Nico Cizik (Digital Metaphors) yazmis:
  • edited August 2010
    Yes it works now :)

    I added the folowing procedure to ppPDFEncodings.pas and did the wiring.
    I will be gratefull if you can include this in the next build.

    Best regards

    Bora Aydemir

    procedure TppPDFEncoding.TurkishDifferences;
    begin
    WriteMSLine(FTempEncodingStream,'/Differences [');
    WriteMSLine(FTempEncodingStream,'208 /Gbreve');
    WriteMSLine(FTempEncodingStream,'221 /Idotaccent');
    WriteMSLine(FTempEncodingStream,'222 /Scedilla');
    WriteMSLine(FTempEncodingStream,'240 /gbreve');
    WriteMSLine(FTempEncodingStream,'253 /dotlessi');
    WriteMSLine(FTempEncodingStream,'254 /scedilla');
    WriteMSLine(FTempEncodingStream,']');
    end;



    25/08/2010 17:20, Bora Aydemir yazmis:
  • edited August 2010
    Thanks Bora,

    I will add this to the next release of ReportBuilder.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.