Проблемы генерации PDF в Railo
Я относительно новичок в Railo. Пытаясь настроить приложение на "Railo", я столкнулся с проблемой генерации PDF. Обратите внимание, что я без проблем запускаю приложение на сервере Adobe CFML.
Проблема: где-то в моем приложении у меня есть кнопка, которая выбирает данные из базы данных и предоставляет загружаемый файл PDF. На сервере Railo содержимое PDF возвращается с "забавными персонажами". Выходной язык - греческий. Греческий язык имеет много акцентированных символов. И именно здесь возникает проблема (акцентированные символы возвращаются в "смешном" формате, например, Ÿ для ή или Š для O или OΕ 'для Ά). Я думаю, что проблема связана с коллекцией шрифтов Railo. То же самое проявляется на сервере 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>
2 ответа
Убедитесь, что вы также добавляете <cfprocessingdirective pageencoding="utf-8">
сразу после <cfcomponent>
в вашем CFC.
Railo отличается в некоторых отношениях. Очень важно, чтобы файл CFC / CFM, который генерирует PDF-файл, также сохранялся в формате Unicode.
Я рекомендую перейти в File > New в вашем редакторе и убедиться, что редактор позволяет вам определить спецификацию и кодировку до создания файла.
Затем скопируйте / вставьте код в новый файл и перезапишите файл.
Если вы делаете это, оно должно работать.
Звучит странно... но попробуйте. Это исправило мои приложения UTF-8 на Railo много раз.
Dreamweaver, хотя я больше этим не пользуюсь, позволял определять эти параметры при создании файла. Вы также можете установить их в настройках для всех будущих документов.
На SublimeText 2 вы можете сохранить файл с кодировкой и спецификацией.
В ColdFusion Builder точно не известно, где находятся настройки спецификации, но здесь есть проблема с настройками, обеспечивающая кодировку по умолчанию UTF-8.
Я надеюсь, что это поможет вам и другим людям, имеющим аналогичные проблемы. ПОМНИТЕ: Если вы работаете с UTF-8 / Railo, вы должны убедиться, что КАЖДЫЙ АСПЕКТ взаимодействий также сохраняется с учетом UTF-8. Включая сами файлы cfc/cfm.
Удачи!