-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Include kerning when outputting pdf strings. #18517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
from .ft2font import KERNING_DEFAULT, LOAD_NO_HINTING | ||
|
||
|
||
LayoutItem = dataclasses.make_dataclass( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are dataclasses getting us here that a named tuple would not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The thing is not iterable, which avoids accidentally relying on an unpacking API (x, y = ...
) which would be a pain to modify (i.e. you can't add another field while maintaining a sensible deprecation).
Of course this is private API so in a sense we could do whatever we want, but as a general rule I think dataclasses are nicer (but note that I went for the "functional" declaration API because I certainly wouldn't want to be the person introducing type hints in the codebase :))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is a compelling agreement 👍 .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The AV sections do text selection fine in okular, but do odd things if you go across € (which from the discussion in #18282 seems to be expected and no worse than it is now).
I believe making selection across non-latin1 characters work would be a huge amount of work, indeed. |
PR Summary
Closes #18282.
PR Checklist
pytest
passes).flake8
on changed files to check).flake8-docstrings
andpydocstyle<4
and runflake8 --docstring-convention=all
).doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).