Hello,

I've submitted a Pull Request with the first change proposed above (and a
test for it): https://github.com/apache/pdfbox/pull/152
Please review it when you have time.

Cheers,
Vladimir


вт, 10 янв. 2023 г. в 07:15, Vladimir Plizga <vladimir.pli...@gmail.com>:

> While generally looks as a good idea, the restriction of setters
> visibility doesn't seem a valuable change in FontBox (like many other
> libraries) because there are already quite a lot of public setters (e.g.
> org.apache.fontbox.ttf.GlyphData#setNumberOfContours) which could allow
> users to accidentally or deliberately spoil the data gathered from the font.
> So perhaps it would be enough to introduce a new method only (to get a
> view of the components) and avoid a breaking change.
>
> Cheers,
> Vladimir
>
>
> вт, 10 янв. 2023 г. в 01:48, Tilman Hausherr <thaush...@t-online.de>:
>
>> On 08.01.2023 13:51, Andreas Lehmkuehler wrote:
>> > Am 08.01.23 um 13:28 schrieb Tilman Hausherr:
>> >> Hi,
>> >>
>> >> The idea sounds ok to me, the only risk I see would be that somebody
>> >> changes a GlyfCompositeComp element.
>> > How about reducing the visibility of both setters to protected and as
>> > long as we use an unmodifiable list to provide the components there
>> > shouldn't be any risk or am I overlooking something?
>>
>> Yes this makes sense. But we can't do it for 2.0 because this would be
>> an API break. (We can add a comment)
>>
>> Tilman
>>
>>
>>
>> >
>> > Andreas
>> >
>> >>
>> >> Tilman
>> >>
>> >> On 07.01.2023 14:15, Vladimir Plizga wrote:
>> >>> Hello,
>> >>>
>> >>> I'm starting to use the FontBox library (tried both GA version
>> >>> 2.0.27 and
>> >>> the latest pre-release 3.0.0-alpha3) to inspect composite glyphs in
>> >>> fonts.
>> >>> In particular, I need to know what exact glyphs (components) are
>> >>> included into a composite glyph and what transformations have been
>> >>> applied
>> >>> to them. However, when I obtain information about a glyph I can only
>> >>> find
>> >>> out whether it is composite and how many components are in it. There
>> >>> is the
>> >>> org.apache.fontbox.ttf.GlyfCompositeComp class that has (almost) all
>> >>> the
>> >>> necessary information, but there is no way to get it from the library
>> >>> (AFAIS). The closest method to it is the
>> >>> org.apache.fontbox.ttf.GlyfCompositeDescript#getCompositeComp, but
>> >>> it is
>> >>> not suitable because: (1) it's private and (2) it takes point index
>> >>> as an
>> >>> argument which is out of scope for this particular task (as I work
>> >>> with the
>> >>> glyph at whole but not with its particular points).
>> >>>
>> >>> I suppose there is some deliberate design decision behind this
>> >>> limitation,
>> >>> but it really hinders "to obtain low level information from font
>> >>> files" (as
>> >>> stated in the library description).
>> >>>
>> >>> As a possible solution, I would suggest to supplement
>> >>> org.apache.fontbox.ttf.GlyfCompositeDescript class with a new method
>> >>> like
>> >>> this:
>> >>>
>> >>> /**
>> >>>   * Gets a view to the composite components
>> >>>   * @return unmodifiable list of this composite glyph's {@linkplain
>> >>> GlyfCompositeComp components}
>> >>>   */
>> >>> public List<GlyfCompositeComp> getComponentsView() {
>> >>>      return Collections.unmodifiableList(components);
>> >>>
>> >>> }
>> >>> , which is aimed to provide a read-only view of the components of a
>> >>> composite glyph. Or provide a similar method for getting a particular
>> >>> component by its index. In either case it would also be needed to
>> >>> make the
>> >>> static flag masks public in org.apache.fontbox.ttf.GlyfCompositeComp
>> >>> class
>> >>> (since now they are protected).
>> >>>
>> >>> Could you please comment on the described limitation and the suggested
>> >>> solution (if it makes sense of course)?
>> >>>
>> >>> Cheers,
>> >>> Vladimir
>> >>>
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
>> >> For additional commands, e-mail: users-h...@pdfbox.apache.org
>> >>
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
>> > For additional commands, e-mail: users-h...@pdfbox.apache.org
>> >
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
>> For additional commands, e-mail: users-h...@pdfbox.apache.org
>>
>>

Reply via email to