From: Rafael C. <raf...@gm...> - 2015-02-17 20:08:48
|
Hi Andrew: Yes, AddTextWrap() is a nightmare. Besides the bugs I mentioned, there are other things that can create problems: - $s{$i} and $s[$i] are not multi-byte safe. It is better to use: mb_substr($s, $i, 1, 'UTF-8'), with encoding included. - Instead of $nb=mb_strlen($s), it is better to use $nb=mb_strlen($s, 'UTF-8'), with encoding included. - Depending on PHP version, mb_internal_encoding('UTF-8') does not work as expected. Also other multi-byte functions (mb_substr, mb_strlen) do not work properly. See (as example): http://php.net/ChangeLog-5.php version 5.4.8 release notes. I suggest you --if you want to keep this AddTextWrap()-- to replace all functions with multi-byte safe functions and to update php version (get late fixes to mb functions). Best regards, Rafael. 2015-02-17 12:54 GMT-06:00 Andrew Galuski <aga...@re...>: > My problem is actually that the variable $nb is set to mb_strlen($s);. > Since the ® character is counted as 1 by mb_strlen nb ends up being 1 > less than the actual string length. So when I iterate while $i<$nb I always > end up with a break if I have a multibyte character in the string (even > though it is short enough to fit). > > > > If I change to $nb=iconv_strlen($s); then $nb is equal to the actual > string length and I fit on 1 line (but I no longer get the extra line > after. I do get the extra line after if no multi-byte characters are in > the string. > > > > I think I have been on this too long. > > > > > > Best Regards, > > Andrew Galuski > > ResMart LLC. > > 817.615.2038 (Office) > > 817.821.0544 (Cell) > > www.resmart.com > > [image: resmart_logo] > > > > *From:* Rafael Chacón [mailto:raf...@gm...] > *Sent:* Friday, February 13, 2015 2:14 PM > > *To:* webERP Developers > *Subject:* Re: [WebERP-developers] PDF generator in webERP. > > > > Hi Andrew, > > Sorry, just I read you messages. > > Yes, as I said in previous messages, this new AddTextWrap fixes the extra > blank line bug. But if any user like this extra blank line bug, there is > lot of work adding a extra line to reports. > > About the problem with your text: > > I think the text does not wrap because it is using a non-breaking space > character instead of a white space character. > > A possible fix: > > $nbsp = html_entity_decode(' ', ENT_QUOTES, 'UTF-8');// Converts > non-breaking space HTML entity to their applicable character. > $text = str_replace($nbsp,' ',$text); > > Best regards, Rafael. > > > > 2015-02-13 13:53 GMT-06:00 Rafael Chacón <raf...@gm...>: > > Hi, > > I enclose a uptdate to new addTextWrap. > > Changes: > 1. Sets encoding 'UTF-8' in all multi-byte functions. > 2. Adds the replace of '\n' text with a line feed character. This is to > fix the possible introduction of a '\n' text instead of a line feed > character. > 3. Adds the delete of '\r' text. This is to fix the possible introduction > of a '\r' text instead of a carriage return character. > 4. Replaces hard hypen with soft hyphen as possible break position. > 5. Privileges the use of mb_substr() instead of $text{$i} (deprecated? not > multi-byte safe?) and $text[$i] (not multi-byte safe?). > 6. Uses "greater than or equal to" comparison instead of "greater than" to > cover the possibility of exact matches to exit for() loop. > 7. Uses "less than or equal to" comparison instead of "less than" to cover > the possibility of exact matches to exit for() loop. > 8. Excludes the break character from the returned string. > 9. Improves documentation and formatting. > > Best regards, Rafael. > > > > 2015-02-13 9:59 GMT-06:00 Andrew Galuski <aga...@re...>: > > > > Actually. > > My issue seems to be with special characters. Any help is appreciated. I > can’t seem to figure out why. > > This Doesn’t Wrap on the invoice > > TEST trademark ABC P-1700 CL 2612MPC > > > This does wrap (Much Shorter but Trademark sign inside of it). I don’t > want it to wrap. > > TEST ® ABC P-1700 CL 2612MPC > > > > I can make 1 modification that fixes it but I am unsure why it is needed > and again not sure of what else it will affect. > > Original code line 293 ‘while($i<$nb)’ > > This code fixes it ‘while($i<=$nb)’ > > > > where > > ‘$nb=mb_strlen($s);’ > > > > Ideas? > > > > > > Best Regards, > > Andrew Galuski > > ResMart LLC. > > 817.615.2038 (Office) > > 817.821.0544 (Cell) > > www.resmart.com > > [image: resmart_logo] > > > > *From:* Andrew Galuski [mailto:aga...@re...] > *Sent:* Friday, February 13, 2015 9:48 AM > > > *To:* webERP Developers > *Subject:* Re: [WebERP-developers] PDF generator in webERP. > > > > The missing spaces would make me have to alter too many forms I believe > but it is nice work. > > I think locally I can fix my issue with another small change. > > > > Best Regards, > > Andrew Galuski > > ResMart LLC. > > 817.615.2038 (Office) > > 817.821.0544 (Cell) > > www.resmart.com > > [image: resmart_logo] > > > > *From:* Rafael Chacón [mailto:raf...@gm... > <raf...@gm...>] > *Sent:* Wednesday, February 11, 2015 4:45 PM > *To:* webERP Developers > *Subject:* Re: [WebERP-developers] PDF generator in webERP. > > > > Hi Andrew, > > I enclose my new AddTextWrap. Inside ~/includes/class.pdf.php, replace > AddTextWrap lines (80-169) with lines 3-66 of the included file. > > Comments: > * I'm testing with last version of Nicola Asuni's TCPDF. > * It is possible to replace line 56 ("$textwidth += > $this->GetStringWidth($c);") with two lines. Those two lines makes the > function a little faster in some cases ($text width near the cell width), > but slower in other cases ($text width far from the cell width). > > Best regards, Rafael. > > > > 2015-02-11 16:19 GMT-06:00 Andrew Galuski <aga...@re...>: > > I am trouble shooting the same problem today where it wraps text smaller > than the width. The added $s = trim($s).' ';" causes an issue for me. Or > you can change a do while loop from < to <= $nb and it appears to fix same > issue. My worry was testing all existing forms. If you can send me your > update I will test it in my environment for all my forms. > > > > Sent from my BlackBerry 10 smartphone on the Verizon Wireless 4G LTE > network. > > *From: *Rafael Chacón > > *Sent: *Wednesday, February 11, 2015 3:26 PM > > *To: *webERP Developers > > *Reply To: *webERP Developers > > *Subject: *Re: [WebERP-developers] PDF generator in webERP. > > > > Hi Vitaly, > > Thank you for writing. > > About > "$lines=explode("\r\n",htmlspecialchars_decode($myrow2['narrative']));": > This line returns an array of strings, each of which is a substring of > $myrow2['narrative'] formed by splitting it on boundaries formed by the > characters Carriage_Return ("\r") and Line_Feed ("\n"). It only works for > msWindows (Unix-like and Mac OS-10 use Line_Feed; Mac OS up to version 9 > uses Carriage_Return). > > The problem in PrintCustTransPortrait.php (and other reports) is caused by > two bugs in AddTextWarp(): > > 1. Line 108: "$s = trim($s).' ';" (extra blank character -> the extra > white line). > 2. Lines from 106 to 164: (the logic of the code -> splitting in the last > white_space of a segment smaller that the cell width). > > My purpose in asking if someone "has problem with this function (last line > line-feeded before the end) ?" is know who else experiences that problem. > > I have a new AddTextWrap that fixes both bugs. It is faster and produces > PDF files with a slightly smaller size, but --obviously-- it not produce > the extra blank line in segments smaller than cell width. Many users like > this (no extra blank line) but there are some users who ask me to re-do > this extra blank line. > > I would like other people tests this new AddTextWrap. Although this extra > blank line is a bug, I am not comfortable with the idea of a potential > change in actual reports. > > Best regards, Rafael. > > > > 2015-02-11 8:25 GMT-06:00 Vitaly Shevkunov <vsh...@so...>: > > Rafael, > > The addTextWrap() does not split the line like that. It is done by this > function > $lines=explode("\r\n",htmlspecialchars_decode($myrow2['narrative'])); > > in PrintCustTransPortrait.php > > > Vitaly > > > > On 2/10/2015 9:38 PM, Rafael Chacón wrote: > > HI Phil, > > Thank you for your answer. > > Topic 1: From R&OS -> FPDF -> TCPDF. For future pdf development, I think > it will be better to directly use TCPDF: (a) Y-coordinate= instead of > calculating as from page-bottom to cell-bottom and the script class.pdf.php > translates to page-top to cell-top to use tcpdf.php, we can directly use > page-top to cell-top and TCPDF; (b) TCPDF has interesting functions > (writeHTML, writeHTMLCell, etc.) to write code html (a screen report) into > a pdf. > > Topic 2: tcpdf 6.2.6 has new fonts and others.They may be helpful to give > more options to reports. > > Topic 3: With PrintCustTransPortrait.php (and other reports) I have > unexpected breaks (see enclose) and prints lines with whitespace. The > problems are inside AddTextWarp(). > > Regards, Rafael. > > > > 2015-02-09 22:34 GMT-06:00 Phil Daintree <ph...@lo...>: > > Yes originally used R & OS pdf library. > Moved to Oliver Plathey FPDF http://www.fpdf.org/ > The class.pdf.php was created to allow the transition to FPDF > ... then to TCPDF which was a development of FPDF which allowed utf-8 > pdfs - using CID fonts rather than embedding a large monster font file into > each pdf - so a small 10k report becomes 2 Meg. This was not considered > acceptable. > I update tcpdf from time to time. > > Not sure about 3. > > Phil > > > > Phil Daintree > > Logic Works Ltd - +64 (0)275 567890 > > http://www.logicworks.co.nz > > On 10/02/15 13:37, Rafael Chacón wrote: > > Hi, > > Some questions: > > 1. webERP begun using PHP Pdf creation - R&OS ( > http://sourceforge.net/projects/pdf-php/). Then, webERP moved to TCPDF ( > http://www.tcpdf.org/). Javier de Lorenzo-Cáceres wrote > ~/includes/class.pdf.php to use TCPDF with "PHP_Pdf_creation_-_R&OS syntax" > (old code). Is it right? > > 2. Someone has updated the ~/includes/tcpdf folder with TCPDF version > 6.2.6 ? > > 3. Someone has replaced the function AddTextWarp() or has problem with > this function (last line line-feeded before the end) ? > > Best regards, Rafael. > > > > ------------------------------------------------------------------------------ > > Dive into the World of Parallel Programming. The Go Parallel Website, > > sponsored by Intel and developed in partnership with Slashdot Media, is your > > hub for all things parallel software development, from weekly thought > > leadership blogs to news, videos, case studies, tutorials and more. Take a > > look and join the conversation now. http://goparallel.sourceforge.net/ > > > > _______________________________________________ > > Web-erp-developers mailing list > > Web...@li... > > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > ------------------------------------------------------------------------------ > > Dive into the World of Parallel Programming. The Go Parallel Website, > > sponsored by Intel and developed in partnership with Slashdot Media, is your > > hub for all things parallel software development, from weekly thought > > leadership blogs to news, videos, case studies, tutorials and more. Take a > > look and join the conversation now. http://goparallel.sourceforge.net/ > > > > _______________________________________________ > > Web-erp-developers mailing list > > Web...@li... > > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2015.0.5646 / Virus Database: 4284/9096 - Release Date: 02/11/15 > > > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming. The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > > > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > _______________________________________________ > Web-erp-developers mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/web-erp-developers > > |