У меня есть требование создать собственный документ, в котором цвета шрифта меняются в зависимости от значения поля. Моя первая мысль была о Conga, но работа с оператором if — это Word, это боль. Я подумал, что будет проще написать страницу visualforce, которая будет отображаться в формате PDF.

Ниже приведен основной код. Цветопередача отлично работает как веб-страница, но как только я добавляю renderAs="PDF", я теряю цвета шрифта. Есть ли способ заставить это работать?

<apex:page id="Region_Health_Check" showHeader="false" standardController="Region__c" docType="html-5.0"
           sideBar="false" standardStylesheets="false" applyBodyTag="false" applyHtmlTag="false" renderAs="pdf">
    <head>
        <title>Region Health Check Report</title>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
        <apex:stylesheet value="{!$Resource.HealthCheckStyle}"/>
    </head>
    <table width="100%">
        <tr width="100%">
            <td width="50%" align="left">Email Engagement Score Card</td>
            <td width="50%" align="right">Overall Health Check Score</td>
        </tr>
        <tr width ="100%">
            <td width="50%">
                <span style="font-family: BrownStd; font-size: 24px">
                     <apex:outputText value="{!Region__c.Name}"/>
                </span>
            </td>
            <td  width="50%" align="center">
                <font color="{!if(Region__c.Grade__c='A', 'green', 'blue')}">
                    <apex:outputText value="{!Region__c.Grade__c}" style="font-size: 39px; font-family: BrownStd, SansSerif"/>
                </font>
            </td>
        </tr>
    </table>
</apex:page>
1
Pranay Jaiswal 29 Ноя 2018 в 16:47
2
Вместо renderAs=pdf" вы можете попробовать renderAs="advanced_pdf"? "nofollow noreferrer">releasenotes.docs.salesforce.com/en-us/summer17/release-notes/…
 – 
Pranay Jaiswal
29 Ноя 2018 в 16:49
Я попробовал advanced_pdf, и цвета шрифта все еще не работали.
 – 
Brooks Johnson
29 Ноя 2018 в 17:12
У меня есть один вопрос: что, если я визуализирую данные с помощью вызова удаленного метода javascript, а затем я хочу распечатать PDF для любого события. и как я могу получить функцию advanced_pdf для своей организации.
 – 
Umesh Beti
24 Май 2019 в 14:40

1 ответ

Лучший ответ

Попробуйте поместить параметр цвета в стиль outputText.

<apex:outputText value="{!Region__c.Grade__c}"
                 style="color:{!if(Region__c.Grade__c='A', 'green', 'blue')}; 
                        font-size: 39px;
                        font-family: BrownStd, SansSerif"
/>

Я думаю это должно сработать

1
Joe Hayes 29 Ноя 2018 в 17:43