From: Vitaly S. <vsh...@so...> - 2015-02-17 20:15:26
|
Hi all, Here some continuation on the printing adventures. Tim suggested that some/most reports do not need to be rendered in PDF, but could be printed off the screen using Print button in the browser. To do that the layout of the page needs to be adjusted using a separate CSS file. I have done a little research and created print.css file with the rules that apply only when the page is sent to the printer. It is done by specifying media="print" for the stylesheet. The print.css hides the menus, header and the footer. In addition, anything that does not need to be printed, can be marked as class="noprint". I modified the Balance Sheet, Income Statement and the Trial Balance to show how it is done. The changes are in the trunk. Hope you like it. Vitaly Hi, Sorry by the delay, I was busy with an urgent invoice problem. Tim: Thank you, very much, for the info about print stylesheets. Vitaly: Thank you, very much, for the link. Sounds interesting: write one code (report), generate to multiple media (outputs). Also, no character encoding problems (using HTML entities instead) and can include rich format (HTML formatting tags). I am thinking in: (1) Make the code for all reports so that they are generated by a "screen" stylesheet to render the page in the browser window; (2) In all reports include a button to print using a "print" stylesheet to render the page for a printer; and (3) Create a print stylesheet "print.css"; (4) Re-create a Form Designer to modify the the main cascading style sheet (CSS for screen). I agree that quotations and invoices are special cases. I need to generate PDFs to be sent by email. In this case, if no way, I prefer to use TCPDF (including generate barcodes). Best regards, Rafael. 2015-02-16 14:16 GMT-06:00 Vitaly Shevkunov <vsh...@so... <mailto:vsh...@so...>>: There is some guides on Internet on how to set up the print css. For example this one. http://www.webcredible.com/blog-reports/css/print-stylesheet.shtml I will try it here to see what I will get. Vitaly On 2/16/2015 3:58 AM, Tim Schofield wrote: > Hi Vitaly, yes you are correct it was the reports that I had in > mind, for instance the trial balance where we maintain two > completely separate pieces of code one for html and another for pdf. > > However a simple html template for an invoice, and a css > stylesheet to customise for each company should be a possibility? > Putting together a form designer to dynamically change this css > shouldn't be as big a problem as with a pdf. > > Tim > > On 15 February 2015 at 19:55, Vitaly Shevkunov > <vsh...@so... <mailto:vsh...@so...>> wrote: > > Tim, > > The css printing is fine for general output. I am not sure it > will work for creating specific forms, like quotations and > invoices. My biggest challenge is how to allow the end user to > customize their forms without php programming. If it could be > done by using css, then I will be happy to start using it. > Does anybody know a good form designer that would be easy to > use for an average person? > > Vitalt > > > On 2/15/2015 4:20 AM, Tim Schofield wrote: >> It is debatable whether we need to be generating pdf reports >> at all these days. You now have the option to use different >> css stylesheets depending upon the media that is being used >> to render the page. So you can have a "screen" stylesheet to >> render the page in the browser window, and a separate "print" >> stylesheet to render the page for a printer. This printer >> stylesheet would hide those elements not wanted in the >> printed output such as the menus and the footer etc, and all >> the user has to do is to press the print button in their >> browser to get a printed report. >> >> This way we don't have to duplicate code for pdf and html >> output, and also the browsers rendering engine takes care of >> line wrapping etc making sure the output always looks good. >> No messing about with all those pdf fonts either. >> >> If pdf output is still required browsers can still print to a >> pdf file. >> >> Tim >> >> On 14 February 2015 at 15:09, Rafael Chacón >> <raf...@gm... >> <mailto:raf...@gm...>> wrote: >> >> Hi Vitaly, >> >> I am happy that this code helps you. >> >> About putting the $fill parameter back: I think it is >> possible, but we need help. I explain myself: >> * In ~/includes/class.pdf.php, in function AddTextWrap(), >> there are two additional parameters: $border and $fill. >> $border is "translated" to 'LTRB' and sets two variables: >> $b and $b2; but $border and $b2 are not used to produce >> any output. Also $fill do not produce any output (only is >> mentioned in the argument list). >> * In R&OS there are two other parameters: $angle and >> $test. Those parameters have no relation with $border and >> $fill. We just copy for compatibility. >> * R&OS deletes addTextWrap() in version 0.12.2 and >> recommends to "use addText instead". The version we have >> has a little documentation ($test = "need to store the >> initial text state, as this will change during the width >> calculation but will need to be re-set before printing, >> so that the chars work out right"). >> >> We are assuming that $border and $fill were included in >> ~/includes/class.pdf.php with the same purpose they have >> in ~/includes/tcpdf/tcpdf.php. For compatibility >> purposes, We leave $angle and $test as they are in >> original R&OS's AddTextWrap() function. We add $border >> and $fill as they are in original Nicola Asuni's TCPDF >> library. I enclose this update. >> >> Here, the direct use of Nicola Asuni's TCPDF library is >> preferred. I agree with that those functions have more >> features and the scripts will be faster, but I am not >> sure about implications of this for users (e.g. fixing >> the extra blank line bug). >> >> Best regards, Rafael. >> >> >> 2015-02-13 21:05 GMT-06:00 Vitaly Shevkunov >> <vsh...@so... >> <mailto:vsh...@so...>>: >> >> Hi Rafael, >> >> I applied your updated function to my code and >> started testing. So far I like it very much. I does >> everything that I expected that function to do in the >> first place. I found some problems in some of my >> forms, but not too many. All of them due to my >> hacking, trying to get that function to do what it >> was not doing before. >> The only change I would make is to put the $fill >> parameter back. It is a very useful feature for me. >> >> Thank you very much >> >> Vitaly >> >> On 2/13/2015 2:14 PM, Rafael Chacón wrote: >>> 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... >>> <mailto: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... >>> <mailto: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 <http://www.resmart.com> >>> >>> resmart_logo >>> >>> *From:*Andrew Galuski >>> [mailto:aga...@re... >>> <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 <http://www.resmart.com> >>> >>> resmart_logo >>> >>> *From:*Rafael Chacón >>> [mailto: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... >>> <mailto: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... >>> <mailto: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... >>> <mailto: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... <mailto: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... >>> <mailto: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... <mailto:Web...@li...> >>> >>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >>> >>> No virus found in this message. >>> Checked by AVG - www.avg.com >>> <http://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... >>> <mailto: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/ >>> <http://goparallel.sourceforge.net/> >>> _______________________________________________ >>> Web-erp-developers mailing list >>> Web...@li... >>> <mailto: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... >>> <mailto: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... <mailto:Web...@li...> >>> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >>> >>> >>> No virus found in this message. >>> Checked by AVG - www.avg.com <http://www.avg.com> >>> Version: 2015.0.5646 / Virus Database: 4284/9102 - >>> Release Date: 02/12/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... >> <mailto: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... >> <mailto:Web...@li...> >> https://lists.sourceforge.net/lists/listinfo/web-erp-developers >> >> >> >> >> -- >> Course View Towers, >> Plot 21 Yusuf Lule Road, >> Kampala >> T +256 (0) 312 314 418 >> M +256 (0) 752 963 325 >> www.weberpafrica.com <http://www.weberpafrica.com> >> Twitter: @TimSchofield2 >> Blog: http://weberpafrica.blogspot.co.uk/ >> No virus found in this message. >> Checked by AVG - www.avg.com <http://www.avg.com> >> Version: 2015.0.5646 / Virus Database: 4284/9112 - Release >> Date: 02/14/15 > > > > > -- > Course View Towers, > Plot 21 Yusuf Lule Road, > Kampala > T +256 (0) 312 314 418 > M +256 (0) 752 963 325 > www.weberpafrica.com <http://www.weberpafrica.com> > Twitter: @TimSchofield2 > Blog: http://weberpafrica.blogspot.co.uk/ > > No virus found in this message. > Checked by AVG - www.avg.com <http://www.avg.com> > Version: 2015.0.5646 / Virus Database: 4284/9120 - Release Date: > 02/15/15 > No virus found in this message. Checked by AVG - www.avg.com <http://www.avg.com> Version: 2015.0.5646 / Virus Database: 4284/9126 - Release Date: 02/16/15 |