Проблемы с созданием Railo PDF

Я относительно новичок в Railo. При попытке настроить приложение на «Райло» я столкнулся с проблемой генерации PDF. Обратите внимание, что я без проблем запускаю приложение на сервере Adobe CFML.

Проблема. Где-то в моем приложении есть кнопка, которая извлекает данные из базы данных и предоставляет загружаемый PDF-файл. На сервере Railo содержимое PDF возвращается с «забавными персонажами». Выходной язык — греческий. В греческом языке много знаков с ударением. И здесь возникает проблема (символы с диакритическими знаками возвращаются в «забавном» формате, например, Ÿ вместо ή или Š вместо O или OΕ’ вместо Ά). Я думаю, что проблема связана с коллекцией шрифтов Райло. То же самое проявляется на сервере openBD! Я уже пытался добавить cfprocessingdirective pageEncoding="utf-8" в файл cfm безрезультатно. Я попытался добавить шрифты в fonts.jar (это находится в папке \WEB-INF\lib) безрезультатно (и вызов шрифтов в PDF css).

Я больше не хочу использовать Adobe CFML Server.

Есть ли решение по этому вопросу?

Спасибо заранее,

Том

Греция

CFC просто обслуживает данные из базы данных.

Код, который я использую:

<cfprocessingdirective pageEncoding="utf-8">
<cfif not IsDefined("URL.id")>
    <cfelseif not IsDefined("URL.model")>
    <cfelseif not IsDefined("URL.title")>
    <cfelseif not IsDefined("URL.id_tree")>
</cfif>
<cfheader name="Content-Disposition" value="attachment; filename=#URL.id_tree#.pdf">
<cfcontent type="application/unknown; charset=utf-8">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!---<link rel="stylesheet" type="text/css" href="resources/fonts/MinionProRegular/MinionProRegular.css" charset="utf-8" />--->
<title>Print</title>

</head>

<body>

  <!---<cfif not IsDefined("URL.id")>
      <cfelseif not IsDefined("URL.model")>
  </cfif>--->

  <!--- Get print details --->
  <cfinvoke
    component="Print"
    method="myPrint"
    returnvariable="getContent"
    id="#URL.id#" 
    model="#URL.model#">

  <!---<cfdump var="#getMember#">--->

  <!--- Output the PDF --->
  <cfdocument 
    format="pdf"
    pagetype="a4"
    <!---pageheight="5"
    pagewidth="6.5"--->
    margintop="0.6"
    marginbottom="0.8"
    marginright="1.3"
    marginleft="1"
    scale="90"
    unit="in"
    fontembed="true"
    backgroundvisible="true">

    <cfoutput query="getContent" >
    <style type="text/css">
      .logo {
          background-image:url(../../images/app-specific/ithemis_logo_NEW.png);
          background-repeat: no-repeat;
          display: inline-block;
          float: left;
          clear: right;
      }
      .name {
          font-family: Georgia, "Times New Roman", Times, serif;
          font-size: 12px;
          color: ##5a5a5a;
          <!---float: left;
          clear: right;--->
          <!---margin-top: 5px;--->
      }
      .body {
          font-family: "Times New Roman", Times, serif;

          <!---font-family: Bodoni;--->
          <!---font-family: Didot;--->
          <!---font-family: Greek;--->
          <!---font-family: Geosanslight;--->
          <!---font-family: Minionpro_regular;--->
          <!---font-family: Philosopher;--->
          <!---font-family: Russian;--->

          font-size: 11px;
          color: ##323232;
          line-height: 17px;
          <!---float: left;
          clear: right;--->
      }
      .line {
          font-size:1px;
          border-bottom-width: 1px;
          border-bottom-style: solid;
          border-bottom-color: ##202020;
          padding-bottom: 5px;
      }
      .point {
          font-family: Georgia, "Times New Roman", Times, serif;
          font-size: 11px;
          padding: 5px 5px 5px 5px;
          color: ##373737;
          background-color: ##eeeeee;
          /*width: 100% !important;*/
          display: block !important;
          text-align: justify;
      }
    </style>

      <!---<cfprocessingdirective pageencoding="utf-8">--->
      <cfdocumentitem type="header">
            <img src="../../images/app-specific/ithemis_logo_print_pdf.png" alt="iThemis logo" width="80" height="30" style="float:left;" border="0"/>
      </cfdocumentitem>
       <!---Use a footer with current page of totalpages format. --->
      <cfdocumentitem type="footer">
        <cfoutput><span style="font-family:Georgia, 'Times New Roman', Times, serif;font-size:10px;color: ##5a5a5a;float:right;">Σελίδα #cfdocument.currentpagenumber# από #cfdocument.totalpagecount#</span></cfoutput>
      </cfdocumentitem>


      <table border="0"> 

        <tr> 
            <td><span class="name">#Title#</span></td> 
        </tr>

        <tr> 
            <td><span class="body">#Body#</span></td>
        </tr> 

    </table>

    </cfoutput>
  </cfdocument>

</body>
</html>

person Community    schedule 22.07.2012    source источник
comment
Вы видели эту ветку списка рассылки и установили CFDocFonts? groups.google.com/forum/?fromgroups#!topic/railo/ oPqdov0hz6E   -  person Jordan    schedule 22.07.2012
comment
Как я уже сказал, я уже установил новые шрифты. Проблема в том, что cfdocument выводит не то, что ожидалось (символы с диакритическими знаками выводятся как забавные). Хотя плагин CFDocs Fonts очень полезный. Предпочтительнее добавлять новые шрифты автоматически, а не распаковывать fonts.jar, добавлять новый шрифт вручную, а затем создавать файл jar с нуля. Так есть ли способ правильно отображать греческие символы? Заранее спасибо, Том Греция   -  person    schedule 23.07.2012
comment
Когда вы говорите, что код отлично работает в Railo, он работает на том же сервере или вы используете этот тестовый код на другом сервере? Если вы запустите ColdFusion на ОДНОМ и том же сервере и получите эту ошибку с Railo и OpenBD, я бы посоветовал отправить отчет об ошибке для каждого движка. Каждый движок стремится к совместимости с Adobe CF в большинстве аспектов (за исключением случаев, когда это не имеет смысла). Если система ПОЛНОСТЬЮ такая же, с той лишь разницей, что это движок CFML, то это идеальный случай для отправки отчета об ошибке. Пожалуйста, включите свой тестовый пример и полную информацию о системе в отчеты.   -  person Jordan    schedule 24.07.2012


Ответы (2)


Райло в чем-то отличается. Очень важно, чтобы файл CFC/CFM, который генерирует PDF, ТАКЖЕ сохранялся в формате unicode.

Я рекомендую перейти в «Файл» > «Создать» в вашем редакторе и убедиться, что редактор позволяет вам определить спецификацию и кодировку до создания файла.

Затем скопируйте/вставьте код в новый файл и перезапишите им файл.

Если вы сделаете это, это должно сработать.

Звучит странно... но попробуйте. Он много раз исправлял мои приложения UTF-8 на Railo.

Dreamweaver, хотя я им больше не пользуюсь, позволял задавать эти настройки при создании файла. Вы также можете установить их в настройках для всех будущих документов. панель настроек Dreamweaver

В SublimeText 2 вы можете сохранить файл с кодировкой и спецификацией. sublimetext сохранить как закодированный

В ColdFusion Builder не уверен, где именно находятся настройки спецификации, но здесь есть проблема с настройками, чтобы убедиться, что для кодировки по умолчанию установлено значение UTF-8. панель настроек построителя coldfusion

Я надеюсь, что это поможет вам и всем, у кого есть подобные проблемы. ПОМНИТЕ: Если вы работаете с UTF-8 / Railo, вы должны убедиться, что КАЖДЫЙ АСПЕКТ взаимодействий также сохранен с учетом UTF-8. Включая сами файлы cfc/cfm.

Удачи!

person Joshua F. Rountree    schedule 25.02.2013
comment
Я знаю, что это старый поток, но: ECLIPSE НЕ правильно устанавливает флаг спецификации. Вы можете проверить это с помощью HEX-редактора. Мы также поддерживаем немецкий сайт с bluedragon и railo. Чтобы все заработало, у нас есть сценарий очистки, который устанавливает флаг спецификации. Eclipse также иногда перемещает флаг спецификации в середину файла. При желании могу поделиться кодом. - person M.Scherzer; 24.09.2014

Убедитесь, что вы ТАКЖЕ добавили <cfprocessingdirective pageencoding="utf-8"> сразу после <cfcomponent> в CFC.

person Michael Beveridge    schedule 18.11.2013