henck / henck/rtf-html-php

Table conversion fails

Open
#60 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
107
Forks
79
PR merge metrics
No merged PRs in 30d

Description

I´m lost with this issue,

I´m trying to conver a RTF document (shown below) wich contains very simple talbes 4 columns and 3 rows and converted document only shows the text contained on table, rest of converted text is shown perfect.

I´ve tryied with different documents, and different tables, and even I´ve try to change document encoding, but result it´s always the same.

Any idea about what could be happening with this?

(by the way... on root dump seems that cell and row elements are present)

Thank you so much for your code and help

____ RTF code ___

{\rtf1\ansi\deff0\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fnil\fprq0\fcharset128 OpenSymbol{*\falt Arial Unicode MS};}{\f4\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f5\fnil\fprq2\fcharset0 Lucida Sans;}{\f6\fswiss\fprq0\fcharset0 Lucida Sans;}}
{\colortbl;\red0\green0\blue0;\red255\green255\blue255;\red153\green153\blue153;\red128\green128\blue128;}
{\stylesheet{\s0\snext0\nowidctlpar{*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\ltrpar\cf0\kerning1\hich\af7\langfe2052\dbch\af5\afs24\lang1081\loch\f0\fs24\lang3082 Predeterminado;}
{*\cs15\snext15\hich\af3\dbch\af3\loch\f3 Vi?etas;}
{\s16\sbasedon0\snext17\sb240\sa120\keepn\hich\af4\dbch\af5\afs28\loch\f2\fs28 Encabezado;}
{\s17\sbasedon0\snext17\sb0\sa120 Cuerpo de texto;}
{\s18\sbasedon17\snext18\sb0\sa120\dbch\af6 Lista;}
{\s19\sbasedon0\snext19\sb120\sa120\noline\i\dbch\af6\afs24\ai\fs24 Etiqueta;}
{\s20\sbasedon0\snext20\noline\dbch\af6 Índice;}
{\s21\sbasedon0\snext21\noline Contenido de la tabla;}
{\s22\sbasedon21\snext22\qc\noline\b\ab Encabezado de la tabla;}
}{*\listtable{\list\listtemplateid1
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u8226 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li720}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9702 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li1080}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9642 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li1440}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u8226 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li1800}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9702 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li2160}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9642 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li2520}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u8226 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li2880}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9702 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li3240}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext '01\u9642 ?;}{\levelnumbers;}\f3\dbch\af3\fi-360\li3600}\listid1}
{\list\listtemplateid2
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-432\li432}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-576\li576}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-720\li720}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-864\li864}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-1008\li1008}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-1152\li1152}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-1296\li1296}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-1440\li1440}
{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext '00;}{\levelnumbers;}\fi-1584\li1584}\listid2}
}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}}{\info{\creatim\yr2019\mo6\dy13\hr11\min46}{\revtim\yr2019\mo6\dy13\hr11\min46}{\printim\yr0\mo0\dy0\hr0\min0}{\comment OpenOffice}{\vern4150}}\deftab709

{*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Predeterminado;}}
\formshade\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn11906\pghsxn16838\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pgndec\pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse nisi tortor, tristique cursus viverra non, suscipit sed lorem. Ut tincidunt pharetra neque, at dignissim lorem mollis id. Nullam sodales facilisis dolor, et lacinia neque vulputate nec.}
\par \pard\plain \s17\sb0\sa120{\ul\ulc0\b\ab\rtlch \ltrch\loch\lang3082
Aenean nulla augue, finibus id tortor eget, pellentesque scelerisque sapien}{\rtlch \ltrch\loch\lang3082
. Vivamus facilisis bibendum erat, eu fringilla sapien vestibulum sit amet. In purus ante, mollis sit amet leo id, }
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120{\b\ab\rtlch \ltrch\loch\lang3082
Aliquam quis augue at turpis eleifend consequat sit amet quis sem. Proin sed augue sagittis, gravida ipsum quis, accumsan velit. Sed laoreet hendrerit interdum. Proin blandit interdum orci sed faucibus. Donec in eleifend neque. Etiam auctor orci at eros aliquam ornare vitae sed eros}{\rtlch \ltrch\loch\lang3082
. Aliquam pulvinar, urna sed sollicitudin euismod, velit magna sagittis massa, vel eleifend leo tortor ac nunc. Sed sit amet est felis. Sed mauris enim, auctor et erat finibus, placerat iaculis ex. }
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120{\listtext\pard\plain \hich\af3\dbch\af3\loch\f3 '95\tab}\ilvl0\ls1 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch\lang3082
A}
\par \pard\plain \s17\sb0\sa120{\listtext\pard\plain \hich\af3\dbch\af3\loch\f3 '95\tab}\ilvl0\ls1 \li720\ri0\lin720\rin0\fi-360{\rtlch \ltrch\loch\lang3082
B}
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
lkjlkjlkjlkjlkj d'f1lskfj d'f1lfkjd sf'f1lkdsj fl'f1dksjf dsl'f1kfj ds'f1lfkjs aflkasdj flksdj fsdl'f1kfj sdlkf jsdlkf jsdl'f1kf jsdlkf'f1 jsdlfk sdjf'f1lksdjflk}
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \trowd\trql\ltrrow\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clcbpat3\cellx2409\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clcbpat3\cellx4818\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clcbpat3\cellx7227\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\clcbpat3\cellx9636\pard\plain \s21\noline\intbl{\cf2\rtlch \ltrch\loch\lang3082
SSS}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
GGG}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
DDD}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
EEEE}\cell\row\trowd\trql\ltrrow\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2409\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4818\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx7227\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9636\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
AAA}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
aaaaabbbccc}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
MmmmNNN}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
ddd}\cell\row\trowd\trql\ltrrow\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2409\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4818\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx7227\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9636\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
AAA}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
Aaaaayy}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
eyyy}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
eyyyy}\cell\row\trowd\trql\ltrrow\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx2409\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4818\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx7227\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9636\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
AAA}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
AAyy}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
yyye}\cell\pard\plain \s21\noline\intbl{\rtlch \ltrch\loch\lang3082
eyyy}\cell\row\pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120{\rtlch \ltrch\loch\lang3082
}
\par \pard\plain \s17\sb0\sa120\sb0\sa120{\rtlch \ltrch\loch\lang3082
Maecenas tempor sapien a est scelerisque sagittis. Nam ut congue augue, ut bibendum nisl. Vivamus ullamcorper ex ac faucibus pulvinar. Mauris ante nulla, hendrerit vitae congue sit amet, facilisis a justo. Suspendisse imperdiet lectus enim, ac luctus mauris efficitur eget. Aliquam sagittis }
\par }

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the supplied RTF document and inspect the converter's table-handling entry point. Confirm that the four-column, four-row table preserves its rows and cells while surrounding text remains intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.