joniles / rtfparserkit

Primary repository for RTF Parser Kit library
Apache License 2.0
104 stars 42 forks source link

Fix default Unicode alternate skip count #6

Closed stippi closed 9 years ago

stippi commented 9 years ago

According to the Word2007 RTF specs page 18 for control word \ucN, the default value is to skip one byte after a Unicode character. I was reading weird ‚?‘ characters after German Umlauts, until I understood what the problem is. This RTF does not contain the \ucN control word anywhere, but relies on the default.

joniles commented 9 years ago

Do you have a simple example file I can include as a test case?

stippi commented 9 years ago

Yes. It is small, but an actual file, not reduced to just demonstrate the test. I'll try to just paste it here:

{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\froman\fcharset0 Arial;}{\f2\froman\fcharset0 Courier;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}{\stylesheet {\style\s0 \ql\fi0\li0\ri0\f1\fs24\cf0 Normal;}{\style\s3 \ql\fi0\li0\ri0\f1\fs26\b\cf0 heading 3;}{\style\s2 \ql\fi0\li0\ri0\f1\fs28\b\i\cf0 heading 2;}{\style\s1 \ql\fi0\li0\ri0\f1\fs32\b\cf0 heading 1;}}{\*\listtable}{\*\listoverridetable}{\*\generator iText 2.1.7 by 1T3XT}{\info}\paperw12242\paperh15842\margl1425\margr360\margt950\margb1425{\header \pard\plain\s0\qr\fi0\li0\ri0\sl320\plain\f0{\field{\*\fldinst PAGE}{\fldrslt  }}\f2\fs24 .     \line \par}\pgwsxn12242\pghsxn15842\marglsxn1425\margrsxn360\margtsxn950\margbsxn1425\pard\plain\s0\ql\fi-734\li734\ri0\sb480\sa240\sl240\plain\tx720\tqr\tx9580\tx9720{\f2\fs24\cf0\chcbpat1 \tab }{\f2\fs24\cf0\chcbpat1 INNEN. K\u220?CHE - TAG}\par\pard\plain\s0\qj\fi0\li734\ri864\sb240\sa240\sl240\plain\tx1920\tx3840\tx5760\tx7680\tx9600{\f2\fs24\cf0\chcbpat1 Ein Absatz mit Line-Separator:\line Der geht hier auf einer neuen Zeile weiter.}\par\pard\plain\s0\ql\fi-734\li734\ri0\sb480\sa240\sl240\plain\tx720\tqr\tx9580\tx9720{\f2\fs24\cf0\chcbpat1 \tab }{\f2\fs24\cf0\chcbpat1 INNEN. K\u220?CHE - TAG}\par\pard\plain\s0\qj\fi0\li734\ri864\sb240\sl240\plain\tx1920\tx3840\tx5760\tx7680\tx9600{\f2\fs24\cf0\chcbpat1 Hier ist die zweite Szene.}\par}

The file contains two instances of the German word "KÜCHE". You can see that the Ü is followed by ?.

stippi commented 9 years ago

Just realizing: I should have included a UnitTest in the PullRequest. Next time I'll do better.

joniles commented 9 years ago

Manually applied the change, and added a test case based on the supplied document.

geissebn commented 9 years ago

Ich kehre zurück am 14.10.2015.

Ich bin derzeit nicht im Büro und werde Ihre Nachricht erst nach meiner Rückkehr beantworten können.

Gerne helfen Ihnen meine Kollegen unter +49 7031 4161 20 weiter. Bei Fragen oder Problemmeldungen zur jadice-Produktfamilie nutzen Sie bitte das levigo support center unter https://levigo.de/support oder per E-Mail an jadice-support@levigo.de

Hinweis: Dies ist eine automatische Antwort auf Ihre Nachricht "Re: [rtfparserkit] Fix default Unicode alternate skip count (#6)" gesendet am 02.10.2015 15:27:29.

Diese ist die einzige Benachrichtigung, die Sie empfangen werden, während diese Person abwesend ist.