function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

conditionally render info with VF page or rendered PDF -- existing logic was php

Hi, within a VF page or PDF rendering, I need to replace/mimic php code used to evaluate some field(s) value and then display 'sections' of HTML / PDF accordingly.  Browsing other messages in the boards I am fairly certain I can do this with an IF formula and outputText or a table with conditional row rendering.  I am a certified adv. admin (successfully) plundering my way through the conversion of existing HTML for PDF rendering into VF email templates/attachments and PDFs ... until I hit the php code. 


I need some help defining:

1 - an approach to take.  Can I use multiple apex:outputText within one part of the IF formula?  Or should I create separate VF pages to hold the content needed in each condition and pull it into the page with <apex:insert> and <apex:composition>?  Or ...?

2 - if it is (easily) possible to replace the "num2words" conversion done in php -- ($0.20 is presented as "Twenty cents")? 


The page/PDF is a 'contract' template with a few merge fields inserted.  Within section '3', sub-sections, each nicely indented, the logic is:


IF "currency1__c "> 0 then display sub-sections a,b,c,d  and specific sections 5, 6 and 7 --- 'a' contains one merge field. 

     IF "fieldXYZ__c='abc' then display, within section 3, alternate sub-sections a,b,c,d, & e and "alternate" sections 5, and 7 -- with sub-section 'e' a variable defined for showing 2 increasing iterations of ('currency1__c'  * 0.5). 


ELSE -- show the same section 4 and 6, and the "original" sections 5 and 7.



I could provide the existing php if my summary is unclear or incomplete.  The content ends up in PDFs only - not a page in a browser.


Thanks for any help provided here. I am open to someone else solving this for a fee ...





It is possible to do everthing that you imagine...


You can read how to render a VF page as a PDF in the browser, the browser may have a pdf plugin or may forward the file to your pdf reader, from where you could save or print it.

the apex:Page tag also has a contentType="" attribute you could set.

see page 43, 242, 341:


The following lists which VF tags are safe for PDF use, though you could just see what works for you.


By using the apex:outputText tag and it's rendered="" attribute (with an expression) you can conditionally output text onto the page depending on various field values.

<apex:outputText rendered="{!Cust_Obj__c.Amount__c > 500}">
<b><u>Lorem ipsum</u></b> dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent {!Cust_Obj__c.First_Name__c Cust_Obj__c.Last_Name__c}

 The above illustrates how you can conditionally render a whole block of text, and then within that text you can have merge fields and even variable text.


You might try googling for a salesforce way of converting numbers to words, but I expect it will involve some apex code.