[
https://issues.apache.org/jira/browse/PDFBOX-4951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18086629#comment-18086629
]
Volker Kunert edited comment on PDFBOX-4951 at 6/6/26 9:40 PM:
---------------------------------------------------------------
1 new method showGlyphCodes(int[] glyphCodes) in PDAbstractContentStream- no
call of low level methods like write() and writeObject() needed in
GlyphLayoutProcessor
2 Why not having showTextUni protected, that derived classes can override it?
3 I made PDAbstractContentStream package private again with the new interface
ContentStreamForGlyphLayoutInterface
4 I can handle fontSize with a stack like it is done for font, however it
didn't look like the stack is really uses as a stack,
5 Extending PDType0Font does not seem to be the right path, as it has a lot of
constructors where I can't construct the corresponding AWT font.
6 If you have some glyph layout library that handles vertical layout you could
create a processor for vertical layout.
In my understanding HarfBuzz could do this, but this is a C++ library and there
is now HarfRust as new version in Rust, there seems to exist no free glyph
layout engine in pure Java.
The embedding code in JDK for calling HarfBuzz is restricted and seems not to
provide the vertical options.
was (Author: [email protected]):
1 new method showGlyphCodes(int[] glyphCodes) in PDAbstractContentStream- no
call of low level methods like write() and writeObject() needed in
GlyphLayoutProcessor
2 Why not having showTextUni protected, that derived classes can override it?
3 I made PDAbstractContentStream package private again with the new interface
ContentStreamForGlyphLayoutInterface
4 I can handle fontSize with a stack like it is done for font, however it
didn't look like the stack is really uses as a stack,
5 Extending PDType0Font does not seem to be the right path, as it has a lot of
constructor where I can't construct the corresponding AWT font.
6 If you have some glyph layout library that handles vertical layout you could
create a processor for vertical layout.
In my understanding HarfBuzz could do this, but this is a C++ library and there
is now HarfRust as new version in Rust, there seems to exist no free glyph
layout engine in pure Java.
The embedding code in JDK for calling HarfBuzz is restricted and seems not to
provide the vertical options.
> Sequences of DIN SPEC 91379 with combining letters are rendered incorrectly
> ---------------------------------------------------------------------------
>
> Key: PDFBOX-4951
> URL: https://issues.apache.org/jira/browse/PDFBOX-4951
> Project: PDFBox
> Issue Type: Bug
> Components: Rendering
> Affects Versions: 2.0.21
> Reporter: Volker Kunert
> Priority: Major
> Attachments: DIN_SPEC_91379_Sequences-aa.pdf,
> DIN_SPEC_91379_Sequences-ab.pdf, DIN_SPEC_91379_Sequences-ac.pdf,
> DIN_SPEC_91379_Sequences.txt, DefaultScriptProcessor.java, DejaVuSans.ttf,
> DoGlyphLayoutBidi.pdf, DoGlyphLayoutDinSpec91379.pdf,
> DoGlyphLayoutDinSpec91379Form.pdf, DoGlyphPositionBengali.pdf,
> ExamplePdfboxFopPos-By-Tilman.pdf, ExamplePdfboxFopPos.java,
> ExamplePdfboxFopPos.pdf, ExamplePdfboxFopPosForm.java,
> ExamplePdfboxFopPosForm.pdf, FiraCode-Regular.ttf,
> FontForge-Lohit-Bengali.png, TestPdfbox.java, TestPdfboxFop2.java,
> TestPdfboxFop2.pdf, TestPdfboxJava2D.java, TestPdfboxJava2D.pdf, bidi-1.png,
> bidi-2.png, bidi.png, example-PDFBOX-3147-NotoSansThaiLooped-Regular.png,
> image-2026-05-23-16-16-53-442.png, image-2026-05-23-16-17-28-172.png,
> image-2026-05-26-16-49-45-529.png, ligatures-kerning.png,
> patch-2020-10-02.txt, pdfbox.patch, pdfbox.pdf, screenshot-1.png
>
>
> Accented Letters composed of Unicode base letter and combining accent are
> rendered wrong. E.g. with 0041 030B LATIN CAPITAL LETTER A WITH COMBINING
> DOUBLE ACUTE ACCENT the accent appears at the right hand side of the letter
> A, not above the letter A.
> The position is wrong for most of the sequences defined in the following spec:
> DIN SPEC 91379: Characters in Unicode for the electronic processing of names
> and data
> exchange in Europe; with digital attachment
> [https://www.xoev.de/downloads-2316#StringLatin]
> [https://www.din.de/de/wdc-beuth:din21:301228458]
>
> The correct rendering should look like the output of hb-view 2.6.8, see files
> DIN_SPEC_91379_Sequences*.pdf.
> The output of PDFBox is appended in pdfbox.pdf, which is created by running
> TestPdfbox.java. The sequences are read from file
> DIN_SPEC_91379_Sequences.txt.
>
> Font used for testing: NotoSansMono-Regular.ttf, see
> [https://www.google.com/get/noto/]
> download:
> [https://noto-website-2.storage.googleapis.com/pkgs/NotoSansMono-hinted.zip]
> See also FOP-2969
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]