This topic contains 3 replies, has 0 voices, and was last updated by jakubwagner 9 years, 2 months ago.

  • Author
    Posts
  • #2136

    Johnny Than

    When using the Standard Invoice PDF/HTML Template, the item column details get cut off. This does not happen with the basic PDF. Anyone knows how to fix this?

    I’ve tried looking at the Freemarker manual for any word-wrap function but could not find any. I also tried controlling the CSS and found something like below but Freemarker is rejecting the word-wrap attribute.

    table { table-layout:fixed; width:100%}

    td { white-space: -o-pre-wrap; word-wrap: break-word; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; }
    This is a cached copy. Click here to see the original post.

  • #2137

    michoel

    You are looking at the wrong manual for help – Freemarker is a “preprocessor” that inserts the record fields (and possibility runs some logic on the form) and outputs an XML document. The engine responsible for the layout is called BFO, the manual is here.

  • #2138

    Chuan Zhuo

    The item line information got cut off, I think it because of page-break-inside automatically are set to avoid.(in BFO)

    you have some options:

    – Set table (SHOULD be the direct child of the BODY element) to page-break-inside: auto;

    – Make that td more wider

    – Drop the table to container the information

  • #2139

    jakubwagner

    Hello Johnny,

    this is unfortunate limitation of BFO library as noted in their FAQ (http://bfo.com/faq.jsp):

    Why does my table not continue onto the next page?

    With the Report Generator there are specific rules for where a page break can occur. Page 17 of the userguide has some useful information regarding this, but the most basic rule to bear in mind is that only the following tags will split if they are spread across multiple pages.

    
    

      ..

      Automatic pagination will not occur inside a

    tag. A nested inside a
    will be cut off at the bottom if it spreads across multiple pages. This has been actually also investigated internally and the NS Help Pages (https://system.netsuite.com/app/help…ction_N2865736) updated with : Important: If you have text overlapping a footer or missing from a printout, ensure that any long content is enclosed in a tag that will split across pages. The Report Generator has specific rules for where page breaks can occur. A tag nested inside a
    tag will be cut off at the bottom if it spreads across multiple pages. Only the following tags will split correctly if they are spread across multiple pages:

     

      For more information about pagination, see Page 17 of the BFO User Guide(bfo.com/products/report/docs/userguide.pdf). This mostly occurs when you use too long text within item's description (in case of sales order), you can either change the font size or width of the column or if you are somewhat familiar with coding you can check this approach: First we locate start of usual item table block and leave it as is so table header will be printed as usual: Code:

    Now we add new code: Code: <#list item.description?split("
    ") as desc> This starts one more cycle with long description text split by line breaks. Next we want to print out first line as usual except in description will be only first part of long description (one before first line break). This is done by substituting ${item.description} by ${desc} which we defined in previous step: Code: Next we want to print out rest of description so we will print them each on one table row, leaving all other fields blank like this: Code: And now we only end both lists and table: Code:
    ${item.quantity@label} ${item.item@label} ${item.rate@label} ${item.amount@label}
    ${item.quantity} ${item.item}
    ${desc}
    ${item.rate} ${item.amount}
    ${desc}
    Obviously this is just one of more possible approaches how to tackle this problem.

You must be logged in to reply to this topic.