Рендеринг сгенерированного JS изображения в формате PDF - PullRequest
2 голосов
/ 04 ноября 2019

Я использую библиотеку JS barcode39 для создания изображения штрих-кода. Я уже импортировал библиотеку JS в статический ресурс и включил JS в свою страницу visualforce. Штрих-код генерирует нормально на странице VF. Проблема в том, что мне нужно отобразить эту страницу в формате PDF. Когда я это делаю, изображение штрих-кода не появляется. Я не хочу использовать URL изображения с сайта barcodeinc, потому что он очень нестабилен. Я хотел бы использовать эту библиотеку JS. Подскажите, пожалуйста, что я могу сделать, чтобы изменить приведенный ниже код, чтобы сделать штрих-код также в формате PDF? Спасибо

<apex:page standardController="Opportunity" extensions="LPP_PackingSlip" showHeader="false" sidebar="false" renderAs="pdf" standardStylesheets="false" applyHtmlTag="false">  
 <apex:includeScript value="{!$Resource.BarcodeScript}"/>  
    <head>  
<body>          

        <apex:outputText rendered="{!hasPictureDays}">                

            <!--Header-->
            <br/>
            <div class="headerSlip">{!Opportunity.Account.Name}</div><br/>
            <div class="jobSlip">{!Opportunity.WPA__c}</div>
            <center><svg id="barcode"></svg></center>
            <br/><br/>  
</apex:outputText>    
</body>


    <script type ="text/javascript">
        JsBarcode("#barcode", "{!Opportunity.WPA__c}",{
            fontOptions: "both",
            font :  "OCRB",
            textAlign : "center",
            Textmargin : 5,
            fontSize : 12,
            width: 1,
            height: 50

 });



  </script>

</apex:page>

1 Ответ

0 голосов
/ 05 ноября 2019

Не будет так работать. Визуализация Visualforce в PDF выполняется на стороне сервера (с использованием библиотеки Java под названием «Летающая тарелка»). Там нет браузера, нет «движка», который может запустить ваш JavaScript.

Вы можете попросить пользователя сохранить страницу в формате PDF. Если вам нужна полная автоматизация ... есть библиотеки JS для генерации PDF, такие как jspdf ? Они имеют ограниченный набор функций, но для базовых документов ... (проведите собственное исследование, это всего лишь пример). И следите за поддержкой неанглийских символов (японский / китайский / корейский ...) - опять же, Visualforce PDF поколения также борется с ними, и единственный безопасный шрифт - Arial Unicode MS .

Если вам нужно отправить шаблон электронной почты с вложением PDF, даже эта библиотека не поможет. Вам, вероятно, придется посмотреть на создание штрих-кода в виде изображения, возможно, прикрепив его к записи (как настоящий файл / вложение?), А затем вызвав шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...