1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-prawn

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 33 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 14:24 0fba0f9

PrawnPDF master branch

Unreleased

PrawnPDF 2.5.0

Полное встраивание шрифтов

Шрифты можно встраивать в их исходном виде без поднабора или любой другой модификации.

(Александр Манкута, #1322)

Фиксированные аргументы ключевых слов в Prawn::View

(Ким Бургестранд, 1284)

Поиск глифа в правильном шрифте

Учитывайте стиль шрифта при поиске глифа и включите резервные шрифты.

(Дэн Аллен, #1147)

Исправленное кэширование шрифтов

Это тонкая ошибка, которая может привести к использованию неправильных шрифтов.

(maerch, #924, Александр Манкута)

Исправлено межстрочное расстояние в текстовых полях с отступом

(Якуб Стасяк, #1079)

PrawnPDF 2.4.0

Добавлена поддержка Ruby 3

(Александр Манкута)

Исправлена сериализация матрицы преобразования

(Александр Манкута, #1182)

PrawnPDF 2.3.0

Поддержка шрифтов OpenType

TTFunk получил поддержку шрифтов OpenType благодаря отличной работе Кэмерона Дютро. Теперь вы можете использовать шрифты OTF в своих документах.

(Александр Манкута)

Улучшена проверка строки цвета

(Брендан Томас, #1021)

Добавлена документация о конфигурации документа с помощью Prawn::View

(Арно Жубей, #1112)

Исправлено влияние character_spacing на расчёт ширины текста

Дополнительное пространство применялось к концу строки, что приводило к визуально неправильному выравниванию по центру/справа.

(Матьяж Грегорич, #1117)

Инициализирован экземпляр переменной @italic_angle

(Ростислав Свобода, #1095)

Добавлен метод для удаления страниц документа по индексу

(Дэвид Сильвейра, #1092)

Правильно обрабатывать пути к изображениям

Prawn раньше не закрывал IO, переданные в image. Это предотвращало удаление файлов. Теперь случай обрабатывается правильно.

(Гвидо Глор Моджиб, #1090)

Более строгая проверка выравнивания текста

(Лучано Соуза, #1057)

Исправлен метод Prawn::View#respond_to_missing?

Когда вы используете миксин Prawn::View, чтобы создать собственный класс, расширяющий функциональность Prawn, метод respond_to? выдавал ошибку при вызове отсутствующего метода.

(Витор Аримицу, #1065)

Обновлён список поддерживаемых версий Ruby

  • Добавлена поддержка Ruby 2.6

  • Добавлена поддержка Ruby 2.7

  • Добавлена поддержка JRuby 9.2

  • Убрана поддержка Ruby 2.2, 2.3 и 2.4

  • Убрана поддержка JRuby 9.1

Ruby 2.2, 2.3 и 2.4 больше не поддерживаются в восходящем направлении.

(Александр Манкута)

Исправлено столкновение кеша градиента

Упаковка атрибутов градиента до 8-битных значений вызывает коллизии при генерации дайджеста SHA1.

(Пол Джексон, #1049)

Неизвестное сообщение о шрифте

Предоставьте более подробную информацию об ошибке неизвестного шрифта.

(Дэн Аллен, #1045)

Устранено двойное требование

Удалите лишние требования pdf-core

(Мэтт Паттерсон, #1032)

PrawnPDF 2.2.2

Ослабление зависимости pdf-инспектора.

(Александр Манкута)

PrawnPDF 2.2.1

Исправлены поля на отдельных страницах.

(Эрик Ханкинс, #1003)

PrawnPDF 2.2.0

Добавлена поддержка шрифтов TTC

Теперь вы можете использовать шрифты TTC с Prawn.

(Джамис Бак, #1002)

Стиль соединения теперь проверяется

Раньше можно было указать что угодно для стиля соединения, что могло привести к созданию недействительного документа. Теперь это невозможно.

(Тим Вудбери, #989)

Исправленная обработка NBSP в тексте Windows-1252

NBSP обрабатывался неправильно. Исправления и улучшения в PrawnPDF

  • Исправлена проблема с неправильным переносом однострочных абзацев.

    • Ранее к однострочным абзацам ошибочно добавлялся дополнительный отступ.
    • (Автор: Marcin Skirzynski, номер задачи: #922).
  • Улучшено поведение тире.

    • Теперь длина сегментов может быть нулевой. Это полностью соответствует спецификации PDF.
    • (Автор: Thomas Leitner, номер задачи: #1001).
  • Введён Кодекс поведения.

    • В PrawnPDF появился Кодекс поведения.
  • Повышена согласованность генерируемых документов.

    • Было несколько мест в коде, где имена для разных ресурсов генерировались полуслучайным образом. Из-за этого было сложно проверить, есть ли в документе неожиданные изменения. Были предприняты усилия по улучшению согласованности.
    • Автор: Alexander Mankuta.
  • Улучшены градиенты.

    • Градиенты могут иметь несколько остановок для смешивания более чем двух цветов.
    • Раньше можно было указать только два цвета в градиенте: начальный и конечный. Это изменение позволяет указывать любое количество цветов, а также положение между 0 и 1, где они должны отображаться.
    • Это изменение также связано с изменением формата методов fill_gradient и stroke_gradient. Можно продолжать использовать старые параметры метода и указывать только два цвета или использовать новые ключевые аргументы для указания произвольных остановок.
    • Кроме того, если вы используете новый стиль метода, автоматически устанавливается значение apply_transformations равное true.
    • (Автор: Roger Nesbitt, номер задачи: #902).
  • Изменён список поддерживаемых версий Ruby.

    • Поддержка MRI 2.0, JRuby 1.7 и Rubinius была удалена.
    • Добавлены MRI 2.4 и JRuby 9k.
  • Обнаружение неожиданных изменений в руководстве.

    • Долгое время изменения в руководстве было трудно обнаружить, поскольку это был ручной процесс. Не было возможности точно узнать, изменилось руководство или нет.
    • Сейчас изменения в руководстве обнаруживаются во время сборки.
    • (Автор: Alexander Mankuta, номер задачи: #949).
  • Проверка правильности шестнадцатеричных кодов цветов.

    • Цвета, переданные с символом #, ранее представлялись неправильно. Теперь любые цвета, передаваемые в виде строки, должны быть правильными шестнадцатеричными значениями, иначе будет выдана ошибка.
    • (Авторы: Tom Prats, номера задач: #807, #869).
  • Не выдавать ошибку CannotFit при первом фрагменте массива, являющемся пробелом нулевой ширины.

    • При определении того, какой форматированный текст будет соответствовать ширине поля с фиксированной шириной, не следует преждевременно выдавать ошибку CannotFit, если строка начинается с пробела нулевой ширины, а следующий фрагмент превышает ширину.
    • Перед завершением строки она помечается как не содержащая более одного слова, если накопленная ширина строки равна нулю. Это явный признак того, что предыдущие фрагменты не создали никакого содержимого (например, пробел нулевой ширины).
    • (Автор: Dan Allen, номер задачи: #984).

PrawnPDF 2.1.0 — 2016-02-29

  • Добавлена поддержка PNG-изображений с индексированной прозрачностью.

    • Prawn теперь правильно обрабатывает прозрачность в PNG-изображениях с индексированным цветом.
    • (Авторы: Maciej Mucha, номер задачи: #783; Alexander Mankuta, номер задачи: #920).
  • Prawn больше не генерирует предупреждения IRB.

    • Исправлено несколько проблем со стилем кода, которые вызывали предупреждения в IRB при запуске в подробном режиме (irb -w).
    • (Автор: Jesse Doyle, номер задачи: #914).
  • Градиенты могут иметь несколько остановок, чтобы смешивать более двух цветов.

    • Как описано выше. Используйте новый метод style, apply_transformations устанавливается автоматически (см. ниже).

(Roger Nesbitt)

Градиенты, применяемые внутри преобразований, теперь правильно позиционируются

Градиенты PDF/шаблоны берут координаты в координатном пространстве документа, а не в «пространстве пользователя», поэтому, если вы выполнили масштабирование/поворот/перемещение и затем нарисовали градиент внутри, он был расположен неправильно.

Это изменение отслеживает преобразования, применённые к документу, и умножает матрицу градиента на эту отслеживаемую матрицу преобразования, чтобы градиент отображался в правильном месте документа.

Поскольку это изменяет способ интерпретации координат x и y, вы должны вручную добавить apply_transformations: true в вызовы stroke_gradient и fill_gradient, чтобы использовать фиксированное поведение в Prawn 2. Ожидается, что это будет по умолчанию в Prawn 3.

Пожалуйста, обратитесь к вики-странице об этом изменении для получения дополнительной информации.

(Роджер Несбитт, #891, #894)

Добавлен Prawn::Graphics::BlendMode#blend_mode

Режимы наложения можно использовать для изменения способа наложения двух слоёв друг на друга. Ключ BM добавляется во внешнее графическое состояние на основе спецификации PDF версии 1.4. blend_mode принимает один режим наложения или массив режимов наложения. Если передан массив, программа просмотра PDF смешивает слои на основе первого допустимого режима наложения.

PrawnPDF 2.0.2 — 2015-07-15

Ссылки в репитерах/штампах теперь кликабельны

Ранее URL-ссылки не были кликабельными при рендеринге внутри штампа. Теперь правильные аннотации добавляются к объекту страницы, который вызывает штамп, тем самым генерируя кликабельные ссылки в PDF.

Поскольку репитеры построены на штампах, это исправление также должно решить проблемы со ссылками внутри репитеров.

(Джесси Дойл, #801, #498)

PrawnPDF 2.0.1 — 2015-03-23

Исправлена регрессия в draw_text() с вращением

Из-за отсутствия тестов опечатка прокралась в метод draw_text() в PDF::Core, препятствуя его правильной работе при вызове с параметром :rotate.

Эта проблема была решена, и тест был добавлен в тестовый набор Prawn. Говоря более обобщённо, нам нужно улучшить состояние тестов для PDF::Core и провести чёткое разделение между тестовым набором Prawn и тестами PDF::Core. В настоящее время существует множество небольших пробелов, которые могут привести к такого рода проблемам.

[Роберт С. Герус, pdf-core #15]

PrawnPDF 2.0.0 — 2015-02-26

Изменения в поддерживаемых версиях Ruby

Теперь, когда Ruby 1.9.3 больше не поддерживается основной командой Ruby, Prawn больше не будет пытаться поддерживать совместимость с 1.9.x.

Мы продолжим поддерживать Ruby 2.0.0 и 2.1.x и добавили поддержку Ruby 2.2.x.

Если вы используете JRuby, мы рекомендуем использовать JRuby 1.7.x (>= 1.7.18) в режиме 2.0 на данный момент. Пожалуйста, сообщайте об ошибках, если у вас возникнут какие-либо проблемы!

Изменение политики управления версиями PrawnPDF

Начиная с этого выпуска, мы будем устанавливать номера версий на основе следующей политики:

  • Всякий раз, когда документированная функция изменяется несовместимым образом, мы увеличиваем наш основной номер версии.

  • Когда мы добавляем новую функциональность без нарушения обратной совместимости, мы увеличиваем наш дополнительный номер версии.

  • Когда мы выпускаем релизы только для обслуживания (которые охватывают только исправления ошибок, документацию и внутренние улучшения), мы увеличиваем наш младший номер версии.

Эта политика похожа по духу на семантическое управление версиями, и в будущем мы можем официально принять SemVer.

Основное предостережение заключается в том, что если функция не задокументирована (либо в нашей документации по API, либо в руководстве Prawn), вы не можете ничего предполагать о её предполагаемом поведении. В Prawn осталось много устаревших функций из-за поэтапной разработки в течение почти десятилетия, поэтому API были разработаны не столько, сколько выросли органически. Стоявший источник путаницы и неудобного поведения.

Более ранние версии Prawn пытались автоматически перекодировать UTF-8 в Windows-1252, но некоторые из наших низкоуровневых функций либо предполагали, что текст уже был правильно закодирован, либо возвращали текст в другой кодировке из-за внутренних операций перекодирования. Мы также обрабатывали кодировку Windows-1252 вручную, поэтому строки возвращались с тегом ASCII-8BIT вместо Windows-1252, что ещё больше запутывало ситуацию.

В этом выпуске мы внесли несколько значительных изменений в поведение шрифтов AFM, чтобы пользователям приходилось меньше думать о внутренностях Prawn:

  • Обработка текста для всех общедоступных методов Prawn теперь UTF-8-in, UTF-8-out, делая перекодировку Windows-1252 чисто внутренней деталью Prawn, которая не видна снаружи.
  • При использовании шрифтов AFM + символов, отличных от ASCII, которые не поддерживаются в Windows-1252, будет возникать исключение, а не замена на w. _.
  • При использовании шрифтов AFM + символов, отличных от ASCII, которые поддерживаются в Windows-1252, пользователи увидят предупреждение об ограниченной поддержке интернационализации вместе с рекомендацией использовать шрифт TTF вместо этого.
  • Предупреждение включает инструкции о том, как его отключить (просто установите Prawn::Font::AFM.hide_m17_warning = true).
  • При использовании шрифтов AFM + только ASCII текста предупреждения не будет.
  • Внутренне мы теперь используем систему Ruby M17n для обработки кодирования в Windows-1252, поэтому text.encoding будет возвращаться как Windows-1252 при вызове AFM#normalize_encoding, а не ASCII-8Bit.

Ни одна из вышеперечисленных проблем не возникает при использовании шрифтов TTF с Prawn, поскольку они всегда были UTF-8 in, UTF-8 out, и внутреннее перекодирование не выполнялось. Мы по-прежнему рекомендуем тем, кто использует интернационализированный текст, использовать шрифты TTF, потому что у них нет таких же ограничений, как у шрифтов AFM. Однако те, кому по какой-либо причине необходимо использовать AFM, должны извлечь большую пользу из этих изменений.

(Грегори Браун, #793)

Временно восстановил метод Document#on_page_create

Этот метод был перемещён в PDF::Core в выпуске Prawn 1.3.0, удалив его из API Prawn::Document. Хотя это низкоуровневый метод, не предназначенный для общего использования, он необходим для определённых задач, для которых у нас нет надлежащей поддержки в других местах.

Этот метод всё ещё следует считать частью внутренних компонентов Prawn и может быть изменён в любое время, но мы временно восстановили его, пока не найдём подходящую замену. Подробнее см. обсуждение в #797.

(Джесси Дойл, #797, #825)

PrawnPDF 1.3.0 — 2014-09-28

Добавлен миксин Prawn::View для использования DSL Prawn в ваших собственных классах.

При работе со сложными документами на основе Prawn распространённой практикой является создание подклассов Prawn::Document для изоляции различных компонентов друг от друга или предоставления некоторых настраиваемых методов рендеринга. Однако обширный характер объекта Prawn::Document делает эту практику небезопасной: он реализует сотни методов и содержит десятки переменных экземпляра, все из которых могут конфликтовать с любой функциональностью подкласса.

Prawn::View предоставляет более безопасную альтернативу, используя композицию объектов вместо наследования. Это сохранит ваше состояние и методы отдельно от внутренних компонентов Prawn, позволяя вам напрямую вызывать любые методы, предоставляемые объектом Prawn::Document.

Вот пример использования Prawn::View:

class Greeter
  include Prawn::View

  def initialize(name)
    @name = name
  end

  def say_hello
    text "Hello, #{@name}!"
  end

  def say_goodbye
    font("Courier") do
      text "Goodbye, #{@name}!"
    end
  end
 end

greeter = Greeter.new("Gregory")

greeter.say_hello
greeter.say_goodbye

greeter.save_as("greetings.pdf")

По возможности преобразуйте свои подклассы Prawn::Document, чтобы использовать Prawn::View. Это гораздо менее инвазивно и почти не требует усилий. Замена существующей общей практики

  • Мягкая расстановка переносов больше не приводит к ненужным переносам в последнем слове абзацев.

Дефект в нашей системе рендеринга текста был причиной такого поведения. Для получения более подробной информации см. #347 (https://github.com/prawnpdf/prawn/issues/347).

(#773, #774 — Марио Альберт)

Шрифты с неподдерживаемыми сопоставлениями символов теперь будут давать сбой только при использовании неподдерживаемых глифов.

Ошибка в TTFunk препятствовала использованию определённых шрифтов, поскольку они содержали информацию о сопоставлении неподдерживаемых символов. В большинстве случаев эта информация была нужна только для отображения небольшого количества малоизвестных глифов, поэтому большинство пользователей никогда не сталкивались с проблемами при их использовании.

Эта проблема решена и должна помочь улучшить совместимость, особенно для шрифтов на основе CJK.

(TTFunk #20 (https://github.com/prawnpdf/ttfunk/pull/20) — Дэн Аллен)

Prawn больше не вызывает предупреждений Ruby при загрузке

Некоторые незначительные проблемы в нашей зависимости от TTFunk вызывали генерацию множества предупреждений при загрузке Prawn. Начиная с этого выпуска вы сможете запускать Ruby с включёнными предупреждениями и не видеть предупреждений, генерируемых Prawn или его зависимостями.

(TTFunk #21 (https://github.com/prawnpdf/ttfunk/pull/21) — Джесси Дойл)

PrawnPDF 1.2.1 — 2014-07-27

Этот выпуск включает все изменения из версии 1.2.0, которая была отозвана из-за ошибки упаковки.

Модуль Prawn::Table перемещён в дополнительный гем-расширение.

Помимо добавления require "prawn/table" в код, вам потребуется установить гем prawn-table, чтобы использовать функции рендеринга таблиц и ячеек в Prawn 1.2+.

Гем prawn-table будет поддерживаться Хартвигом Брандлом и полуофициально поддерживается командой обслуживания Prawn. Это означает, что мы продолжим следить за сборками CI для каждого выпуска Prawn и поможем как можно скорее решить любые проблемы совместимости.

Дополнительную информацию см. в репозитории prawn-table (https://github.com/prawnpdf/prawn-table).

В текстовом поле появилась возможность отключить перенос по символам.

Эта функция полезна для предотвращения разрывов слов при использовании в сочетании с параметром переполнения :shrink_to_fit. См. следующий пример практического использования:

# Пример, предоставленный Саймоном Мэнсфилдом
Prawn::Document.generate("x.pdf") do
  stroke_rectangle [0, bounds.top], 100, 50

  font('Helvetica', size: 50) do
    formatted_text_box(
      [{text: 'VEGETARIAN'}],
      at: [0, bounds.top],
      width: 100,
      height: 50,
      overflow: :shrink_to_fit,
      disable_wrap_by_char: true  # <---- добавлено в версии 1.2
    )
  end
end

Без установки :disable_wrap_by_char код выше разорвёт слово «VEGETARIAN» на две строки вместо того, чтобы уменьшить его размер до одной неразрывной строки.

Для обеспечения обратной совместимости :disable_wrap_by_char реализован как необязательное поведение, которое по умолчанию отключено.

(#752 (https://github.com/prawnpdf/prawn/pull/752), Джеймс Коулман)

Сбой шрифтов-заменителей больше не нарушает глобальное форматирование шрифтов.

В более ранних версиях Prawn использование системы шрифтов-заменителей приводило к потере информации о стилях (например, жирный шрифт, курсив), и единственным решением этой проблемы было явное указание стиля для каждого отдельного фрагмента текста.

Теперь, когда эта проблема устранена, безопасно использовать метод font для установки стилей глобально, даже если используются шрифты-заменители.

(#743 (https://github.com/prawnpdf/prawn/pull/743), Пит Шарум)

Прогоны форматированного текстового поля больше не изменяют состояние графики

Прогоны должны быть способом без побочных эффектов для имитации рендеринга текста, но ошибка в более ранних версиях Prawn приводила к изменению состояния графики, если цвета были установлены на текстовых фрагментах. Этот патч устраняет эту проблему.

(#736 (https://github.com/prawnpdf/prawn/pull/736), Кристиан Хике)

Исправлена ​​ошибка ручной сборки на Ruby 1.9.3

Когда мы извлекли Prawn::ManualBuilder, мы случайно нарушили его поддержку Ruby 1.9.3. Эта проблема была решена.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-prawn.git
git@api.gitlife.ru:oschina-mirror/mirrors-prawn.git
oschina-mirror
mirrors-prawn
mirrors-prawn
master