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

Some issues with 15.03 and 15.02

edited March 2014 in General
Hi,

Just upgraded from 15.02 to 15.03 (Delphi XE4)

I see I can now have QrCode with version up to 40. But you forgot to change
the limit in TppQRCode.SetCodeVersion.


A few issues encountered in 15.02 still in 15.03

1. Double lines
We have reports with double 1/8 pt lines. In 11.08 they printed ok. In 15.03
they are printed as a single lines, actually as double lines with zero
distance. This happens with the printerdevice and pdf, rtf and xls
devices. Preview and graphic devices are OK.
The renderingcode in 11.08 handled those thin lines (with pen.width = 0) as
a special case. I do not see that in the new rendering engines. Also I
noted that the pdf-renderer place the second line above the first line.

2. PDF engine and non-embedded fonts
If you have a font with a name like 'KIX Barcode' and do not embed the font
then Adobe reader cannot find the font and displays a standard font. Yes,
the font is installed on the machine where I open the pdf. It is caused by
the conversion of the fontnames, ie 'KIX Barcode' is converted to
'KixBarcode'. If i manually change the name to 'KIXBarcode' in the pdf-file
then is displayed OK. II t happens with all fonts where uppercase characters
are converted to lowercase. So it seems that you have to leave the uppercase
chars as-is. Not sure if this is an issue with Adobe reader. As a temp fix I
gave TppPDFUtils.ProcessFontName a local copy of ppCapitalize with the
LowerCase() call removed.

3. Multiline memo's in RTF
If RTSettings.UseTextBoxes = true then Tpp(DB)Memos are not wrapped but the
text is clipped to the width of the textbox. So you only see the first line.
I think this a tricky one. I have checked it with a demo with the installed
sources/packages and it seemed to work OK. But when debugging the code I
found that the clipping happens in TppRTFRendererText.ProcessText because
RTFTextObject.Wrapped is false.
RTFTextObject should be a TppRTFTextObject but it's actually a TppRTFObject.
TppRTFRendererText.GetRTFTExtObject hard-casts its result to a
TppRTFTextObject so no error but the Wrapped property is just random memory.
That explains why it is working sometimes. If you change the cast in
TppRTFRendererText.GetRTFTextObject to a safer as-cast you get an invalid
type exception.



Regards,

Max Paay
Quadrant Software bv.
The Netherlands.

Comments

This discussion has been closed.