Автор Тема: Работа с PDF. Вопросы по pdf_au3_haru.au3 - UDF  (Прочитано 1466 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 279
  • Репутация: 29
    • Награды
  • Версия AutoIt: 3.3.12.0
Всем привет!
В свое время WSWR сделал pdf_au3_haru.au3 - UDF для работы с libharu - библиотекой создания PDF-файлов

http://autoit-script.ru/index.php?topic=20016.new#new

Интересно, что в прилагаемом примере у меня Adobe Reader 11 некорректно отображает кирилицу (квадратики), хотя в PDFMaster все отображается корректно. Проблему решил загрузкой шрифта:
Код: AutoIt [Выделить]
$txt_font = AU3_HPDF_GetFileFont('C:\Windows\Fonts\times.ttf', $CP1251)
 


Вопрос. Как можно изменить цвет шрифта и начертание шрифта (bold,Italic итд)?

Пробовал менять цвет так, но здесь происходит обрамление цветом (черный шрифт обтекается красным):
Код: AutoIt [Выделить]
#include <pdf_au3_haru.au3>
; ВНИМАНИЕ: Координаты для рисования считаются от ЛЕВОГО НИЖНЕГО края

Global $pdf, $page

$pdf = AU3_HPDF_New() ; Создаем новый PDF-документ

$page = AU3_HPDF_AddPage() ; Добавляем новую страницу
AU3_HPDF_Page_SetSize($page, $HPDF_PAGE_SIZE_A4, $HPDF_PAGE_LANDSCAPE) ; Устанавливаем размер страницы А4, ориентация - альбомная

$doc_height = AU3_HPDF_Page_GetHeight($page) ; Получаем высоту страницы
$doc_width = AU3_HPDF_Page_GetWidth($page); Получаем ширину страницы


AU3_HPDF_Page_BeginText ($page) ; Начинаем вывод текста
AU3_HPDF_Page_SetRGBStroke($page, 255, 0, 0) ; Устанавливаем цвет линий прямоугольника (красный)
$txt_font = AU3_HPDF_GetFileFont('C:\Windows\Fonts\times.ttf', $CP1251); Загружаем шрифт из файла
AU3_HPDF_Page_SetFontAndSize($page, $txt_font, 14) ; Устанавливаем размер шрифта
AU3_HPDF_Page_MoveTextPos($page, 100, $doc_height - 50) ; Изменяем текущую позицию вывода текста
AU3_HPDF_Page_SetTextRenderingMode($page,$HPDF_FILL_THEN_STROKE) ; Устанавливаем режим вывода текста -  $HPDF_FILL (обычный), $HPDF_STROKE (только обрамление), $HPDF_FILL_THEN_STROKE (обрамление цветом поверх)
AU3_HPDF_Page_ShowText ($page, 'Первая строка текста') ; Выводим текст в текущую позицию

AU3_HPDF_SaveToFile("test0") ; Сохранение PDF-документа, расширение может добавляться автоматически
AU3_HPDF_Free() ; Освобождение ресурсов
 

« Последнее редактирование: Март 11, 2016, 18:13:22 от pvnn »

Русское сообщество AutoIt

Работа с PDF. Вопросы по pdf_au3_haru.au3 - UDF
« Отправлен: Март 11, 2016, 13:04:07 »

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 941
  • Репутация: 355
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Работа с PDF. Вопросы по pdf_au3_haru.au3 - UDF
« Ответ #1, Отправлен: Март 15, 2016, 14:20:21 »
pvnn
Я уж еле вспомнил, что делал такую библиотеку)

По начертанию шрифта - начертания шрифта хранятся в разных файлах, например,
полужирный - "\Fonts\timesbd.ttf"
курсив - "\Fonts\timesi.ttf"
и т.д.
Брать шрифт, добавлять к нему атрибуты начертания и выводить как графику по-простому не получится, для этого на компилируемых языках существуют специальные библиотеки. Можно перебрать все файлы шрифтов на компьютере, получить их атрибуты и расположение, потом использовать.

А так получает полужирный красный текст:
Код: AutoIt [Выделить]
#include <pdf_au3_haru.au3>
; ВНИМАНИЕ: Координаты для рисования считаются от ЛЕВОГО НИЖНЕГО края

Global $pdf, $page

$pdf = AU3_HPDF_New() ; Создаем новый PDF-документ

$page = AU3_HPDF_AddPage() ; Добавляем новую страницу
AU3_HPDF_Page_SetSize($page, $HPDF_PAGE_SIZE_A4, $HPDF_PAGE_LANDSCAPE) ; Устанавливаем размер страницы А4, ориентация - альбомная

$doc_height = AU3_HPDF_Page_GetHeight($page) ; Получаем высоту страницы
$doc_width = AU3_HPDF_Page_GetWidth($page); Получаем ширину страницы


AU3_HPDF_Page_BeginText ($page) ; Начинаем вывод текста
;AU3_HPDF_Page_SetRGBStroke($page, 255, 0, 0) ; Устанавливаем цвет линий прямоугольника (красный)

$txt_font = AU3_HPDF_GetFileFont('C:\Windows\Fonts\timesbd.ttf', $CP1251); Загружаем шрифт из файла timesbd.ttf - Times полужирный

AU3_HPDF_Page_SetFontAndSize($page, $txt_font, 14) ; Устанавливаем размер шрифта
AU3_HPDF_Page_MoveTextPos($page, 100, $doc_height - 50) ; Изменяем текущую позицию вывода текста

AU3_HPDF_Page_SetRGBFill($page, 255, 0, 0); устанавливаем цвет ЗАПОЛНЕННОГО текста
AU3_HPDF_Page_SetTextRenderingMode($page,$HPDF_FILL) ; Устанавливаем режим вывода текста -  $HPDF_FILL (обычный), $HPDF_STROKE (только обрамление), $HPDF_FILL_THEN_STROKE (обрамление цветом поверх)


AU3_HPDF_Page_ShowText ($page, 'Первая строка текста') ; Выводим текст в текущую позицию

AU3_HPDF_SaveToFile("test0") ; Сохранение PDF-документа, расширение может добавляться автоматически
AU3_HPDF_Free() ; Освобождение ресурсов
 


Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 279

  • Автор темы
  • Репутация: 29
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Работа с PDF. Вопросы по pdf_au3_haru.au3 - UDF
« Ответ #2, Отправлен: Март 16, 2016, 08:55:17 »
WSWR, спасибо за ответ.
Тема решена

Русское сообщество AutoIt

Re: Работа с PDF. Вопросы по pdf_au3_haru.au3 - UDF
« Ответ #2 Отправлен: Март 16, 2016, 08:55:17 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
2655 Просмотров
Последний ответ Апрель 06, 2012, 19:39:56
от sngr
4 Ответов
2528 Просмотров
Последний ответ Июнь 24, 2012, 02:35:36
от Kaster
9 Ответов
8024 Просмотров
Последний ответ Июнь 27, 2013, 17:33:23
от gregaz
0 Ответов
1769 Просмотров
Последний ответ Апрель 08, 2013, 17:25:10
от Andrey_A
2 Ответов
1864 Просмотров
Последний ответ Ноябрь 24, 2013, 22:02:49
от ArgoNaft
1 Ответов
2745 Просмотров
Последний ответ Апрель 27, 2014, 00:37:00
от joiner
15 Ответов
5546 Просмотров
Последний ответ Май 25, 2015, 14:17:13
от lelik_keo
8 Ответов
8922 Просмотров
Последний ответ Декабрь 28, 2018, 12:09:41
от zghwelcome
3 Ответов
2293 Просмотров
Последний ответ Июнь 28, 2015, 18:10:05
от WSWR
8 Ответов
395 Просмотров
Последний ответ Март 19, 2019, 03:02:10
от Lost