WPCubed Product Support

Spacing between Pars: BUG??

Hi! I'm trying to load documents saved with version 4 in my new project with WPTools 5. The problem is, when I load the text (WPRichText1.AsString := Query1.FieldByName('Text').AsString), the spacing between the paragraphs is all messed(too large!). Then I copied the text and paste in MS Word, and find out that Linespacing is 50 pts!! Is this a Bug?? How can I fix this?? Currently using version 5.0 Realease 12.

Thanks!

#1 ♥ 0
3.6k Views 2 users read 5 min

Hi Julian! Above is a sample of a text with the problems.

{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 Default;}{\f2\fnil\fcharset1 Arial;}{\f3\fnil\fcharset1 Tahoma;}{\f4\fnil\fcharset2 WingDings;}{\f5\fnil\fcharset1 Bookman Old Style;}{\f6\swiss\fcharset1 Century Gothic;}{\f7\fnil\fcharset1 Georgia;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;}\wptoolsver4\wpprheadfoot1\paperw11906\paperh16838\margl941\margr941\margt3197\margb1000\headery720\footery254{\*\listtable{\list\listtemplateid19690212{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc1{\leveltext\'02\'00.;}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc3{\leveltext\'02\'01.;}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc0{\leveltext\'02\'02.;}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc4{\leveltext\'02\'03);}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc2{\leveltext\'02\'04);}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc4{\leveltext\'02\'05);}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc0{\leveltext\'02\'06);}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc0{\leveltext\'02\'07);}{\levelnumbers\'01;}}
{\listlevel\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent360\levelnfc0{\leveltext\'02\'08);}{\levelnumbers\'01;}}
\listid1194737}}{\*\listoverridetable{\listoverride\listid1194737\listoverridecount0\ls1}}\endnhere\sectdefaultcl{\header \pard{\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f3\fs24\cf0\b }\par}
{\pard{\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Cr\'e2nio sim\'e9trico e com dimens\'f5es anat\'f4micas.\par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Calota craniana de espessura e estrutura de aspectos normais.\par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Sulcos vasculares simetricamente distribu\'eddos.\par
{\tx1170 \ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Sela turca bem configurada de volume normal e sem eros\'f5es.\par
\qj\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Aus\'eancia de calcifica\'e7\'f5es patol\'f3gicas intra-cranianas.\par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 Estruturas \'f3sseas da base do cr\'e2nio sem anormalidades.\par
\ql\li0\fi2298\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\ql\li0\fi2298\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\ql\li0\fi35\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0\ul Conclus\'e3o:\par
\ql\li0\fi2298\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
}{\tx2250 \ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 O exame \'e9 normal.\par
}\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\ql\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0 \par
\qj\li0\fi0\ri0\sb0\sl1000\sa0 \plain\f2\fs24\cf0  }}
}

Thanks

#3 ♥ 0
support

Hi,

MSWord (the newer versions) have a bug to not interpret \sl1000 as default spacing as the RTF documentation suggests. An intermediate version of V4 used this value since it was required to work with OpenOffice. In the meantime OpenOffice understands \sl0 and so for WPTools V4 there is a RTF writer available which does not write this code. (Can be fixed easily in unit WPWrtRTF).

WPTools 5 however understands both \sl0 and \sl1000 as default line height and when I load your RTF file I get the same image as with V4.

The code which does it in in unit WPIOReadRTF.PAS:

ipropSpaceBetween: // spacing in twips
begin
if Value = 1000 then Value := 0; // RTF Spec 1.5 = Default!
if FReadingStyle <> nil then FReadingStyle.ASet(WPAT_SpaceBetween, Value)
else ASetNeutral(WPAT_SpaceBetween, Value);
lastSpaceBetween := Value;
end;

I suggest to wait 2 days and then download V5.18.1 - V5.12 is definitely outdated.

Julian

#4 ♥ 0
This category is archived. No new posts are possible.