FreeBasic
Главная
Вход
Регистрация
Вторник, 12.11.2024, 22:05Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
LibHaru
symarglДата: Воскресенье, 19.04.2015, 19:59 | Сообщение # 16
Сержант
Группа: Пользователи
Сообщений: 27
Репутация: 0
Статус: Offline
БлагоДарю! Нечто подобное я вчера в общих чертах и вообразил. Но с деталями действительно мудохался бы очень долго. Осталась одна шероховатость: прозрачный фон png-картинки на странице получается красивого синего цвета wink
 
haavДата: Воскресенье, 19.04.2015, 21:14 | Сообщение # 17
Генералиссимус
Группа: Администраторы
Сообщений: 1372
Репутация: 49
Статус: Offline
Цитата symargl ()
Осталась одна шероховатость: прозрачный фон png-картинки на странице получается красивого синего цвета


Не знаю откуда синий цвет... Серый еще понятно. Посмотри второй параметр функции LoadImageFromResource


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
symarglДата: Воскресенье, 19.04.2015, 21:54 | Сообщение # 18
Сержант
Группа: Пользователи
Сообщений: 27
Репутация: 0
Статус: Offline
Да это совершенная ерунда, практически придирка. Все чудесно работает, о лучшем нечего и мечтать!
 
vic7tarДата: Вторник, 28.11.2017, 14:23 | Сообщение # 19
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
Всем привет.
Взял пример с сайта, попытался вывести в pdf кириллицу:
Код
txt_font = HPDF_GetFont (pdf, "Arial", "CP1251" )
HPDF_Page_MoveTextPos (page, 60, doc_height - 105)
HPDF_Page_SetFontAndSize (page, txt_font, 14)
HPDF_Page_ShowText (page, "Пример")
В итоге получил кракозябры. Подскажите, пожалуйста, как победить?
 
haavДата: Вторник, 28.11.2017, 16:10 | Сообщение # 20
Генералиссимус
Группа: Администраторы
Сообщений: 1372
Репутация: 49
Статус: Offline
Насколько я понял документацию , функция HPDF_GetFont внутренне поддерживает только этот список шрифтов:

Цитата
•Courier
•Courier-Bold
•Courier-Oblique
•Courier-BoldOblique
•Helvetica
•Helvetica-Bold
•Helvetica-Oblique
•Helvetica-BoldOblique
•Times-Roman
•Times-Bold
•Times-Italic
•Times-BoldItalic
•Symbol
•ZapfDingbats


Если указать поддерживаемый шрифт Courier , то русский отображается. Arial в списке нет. Если нужен arial или другой какой-то шрифт, то его нужно загрузить с помощью функций: HPDF_Load.....


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
vic7tarДата: Четверг, 07.06.2018, 01:49 | Сообщение # 21
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
Всем привет.
Кто-нибудь поможет в каком направлении идти.
Есть такая функция:
Код
declare function HPDF_LoadTTFontFromFile cdecl alias "HPDF_LoadTTFontFromFile" (byval pdf as HPDF_Doc, byval file_name as zstring ptr, byval embedding as HPDF_BOOL) as zstring ptr
В качестве второго параметра нужен полный путь загружаемого ttf-файла.
А как можно вычислить полный путь шрифта по его имени?
Что-то такое:
Arial Black   -> C:\Windows\Fonts\ariblk.ttf
или
AdobeIcons -> C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\CCX_START_EXTENSION_1_2_1_001\fonts\beIcons-80c0af4ec35ec9a927081adfe7763b55.ttf
Может есть какие-то недокументированные апишные функции или единственный путь через реестр?


Сообщение отредактировал vic7tar - Четверг, 07.06.2018, 01:51
 
haavДата: Четверг, 07.06.2018, 20:45 | Сообщение # 22
Генералиссимус
Группа: Администраторы
Сообщений: 1372
Репутация: 49
Статус: Offline
Путь к файлу похоже только через реестр. Но нафига он нужен? Можно просто взять шрифт и использовать из любой папки:

Код
AddFontResource("Путь к любой папке , где лежит шрифт\arial.ttf")
Var font_name = HPDF_LoadTTFontFromFile (pdf, "Путь к любой папке , где лежит шрифт\arial.ttf", HPDF_TRUE)
txt_font = HPDF_GetFont (pdf, font_name , "CP1251")
HPDF_Page_MoveTextPos (page, 0, -20)
HPDF_Page_SetFontAndSize (page, txt_font, 12)
HPDF_Page_ShowText (page, "Привет")
RemoveFontResource("Путь к любой папке , где лежит шрифт\arial.ttf")


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Пятница, 08.06.2018, 20:34 | Сообщение # 23
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Цитата vic7tar ()
А как можно вычислить полный путь шрифта по его имени?
 Поиск файлов + FreeType
 
vic7tarДата: Суббота, 09.06.2018, 02:29 | Сообщение # 24
Рядовой
Группа: Пользователи
Сообщений: 12
Репутация: 0
Статус: Offline
Цитата WQ ()
Поиск файлов + FreeType
Если не затруднит - название функции в FreeType, посмотрю ее исходник.
Цитата haav ()
Путь к файлу похоже только через реестр. Но нафига он нужен? Можно просто взять шрифт и использовать из любой папки:
. . .
А если имя шрифта выбирается во время исполнения?
Ради интереса посмотрел список импортируемых функций у Adobe Pro DC и PDF-XChange. В обоих случаях помимо всего остального присутствует один и тот же набор функций для работы с реестром.
Ведь как-то при внедрении шрифта они  это делают.
 
haavДата: Суббота, 09.06.2018, 06:59 | Сообщение # 25
Генералиссимус
Группа: Администраторы
Сообщений: 1372
Репутация: 49
Статус: Offline
Так чем реестр не устраивает? Считываешь в этой ветке: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
Там имена шрифтов и имена файлов. Шрифты всегда лежат в папке: Windows\Fonts . А если нужен какой-то левый не установленный шрифт , то выше в примере я показал как использовать.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Суббота, 09.06.2018, 14:26 | Сообщение # 26
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Цитата vic7tar ()
Если не затруднит - название функции в FreeType, посмотрю ее исходник.

FT_New_Face
Эта функция открывает файл шрифта и позволяет получить его свойства
Получаем список файлов шрифтов в папке, перебором в цикле соотносим путь шрифта и его свойства
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: