AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2012, 23:36   #41  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Дело в том, что в pdf-файл из аксапты символы записываются в 8-битной кодировке.
Если не предпринимать специальных мер, то и отображаться они будут из первых 256 символов (глифов) шрифта.
Для того, что бы отображался все-таки правильный текст, в спецификацию шрифта в pdf добавляется таблица различий (Differences), в которой записывается, что такому-то коду символа в тексте будет соответствовать такое-то имя глифа в файле шрифта
Выглядит это, приблизительно, так
Код:
/Differences [ 128 /Euro 157 /overscore 170 /Rcedilla 181 /mu1 186 /rcedilla 192 /Aogonek/Iogonek/Amacron]
В коде в Аксапте эта таблица строится по данным самого шрифта (на основании кодировки, которую вы установили BALTIC_CHARSET) в методе GetDifferences().

В файле, который вы выложили, такая таблица тоже присутствует, но вот для символов, которые отображаются неверно, соответствия нет. По какой-то причине, в таблице соответствия глифов в шрифте не прописаны символы ccaron, scaron, zcaron

Но можно попробовать модифицировать этот метод, что бы необходимые соответствия все-таки попали в файл.
Надо добавить следующий код
X++:
for (l=128-firstChar;l<lastChar-firstChar+1;l++)
{
    ... 
}
//Добавляем здесь -->
if (charSet == #BALTIC_CHARSET && Differences)
    Differences += " 200 /uni010C 208 /uni0160 222 /uni017D 232 /uni010D 240 /uni0161 254 /uni017E";
//Добавляем здесь <--
return true;
На выходе должен получиться файл, как во вложении
Вложения
Тип файла: pdf AxaptaReport1.pdf (630.1 Кб, 346 просмотров)
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: raz (10), S.Kuskov (10).
Старый 12.12.2012, 10:13   #42  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от AndyD Посмотреть сообщение
Надо добавить следующий код
X++:
for (l=128-firstChar;l<lastChar-firstChar+1;l++)
{
    ... 
}
if (charSet == #BALTIC_CHARSET && Differences)
    Differences += " 200 /uni010C 208 /uni0160 222 /uni017D 232 /uni010D 240 /uni0161 254 /uni017E";
return true;
На выходе должен получиться файл, как во вложении
Ваууу ! Большое спасибо Анди ! Все получилось ! Великолепное решение !
Теги
download, faq, pdf, законченный пример, отчет, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Печать самих файлов PDF Владимир Максимов DAX: База знаний и проекты 9 17.08.2017 10:34
Печать нескольких экземпляров отчета по умолчанию. bum DAX: Функционал 3 17.06.2008 10:42
Двухсторонняя печать отчета Shirmin Oleg DAX: Программирование 6 18.10.2007 10:08
Печать отчетов, как увеличить масштаб отчета? Hidden DAX: Прочие вопросы 8 30.12.2005 10:55
Печать в PDF GeorgeVk DAX: Прочие вопросы 3 06.08.2004 17:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:05.