You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2026/10/10 10:57:38 UTC

svn commit: r1938982 - in pdfbox/branches/3.0: debugger/src/main/java/org/apache/pdfbox/debugger debugger/src/main/java/org/apache/pdfbox/debugger/pagepane debugger/src/main/java/org/apache/pdfbox/debugger/ui fontbox/src/main/java/org/apache/fontbox/tt...

Author: tilman
Date: Sat Oct 10 10:57:38 2026
New Revision: 1938982

Log:
PDFBOX-3293: support TrueType font hinting, by Patrick Corless and Claude Code

Added:
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/BytecodeStream.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ControlValueProgramTable.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ControlValueTable.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ExecutionContext.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ExecutionTracer.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/Fixed.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/FontProgramTable.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/FunctionDef.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GaspTable.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphHinter.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GraphicsState.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/HintingException.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeInterpreter.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/UnitVector.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/Zone.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/BackwardCompatibilityMoveTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/BytecodeStreamTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/FixedTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphTraceTool.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GoldenHintingTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GraphicsStateTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintedPointsDumpTool.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingConcurrencyTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingIntegrationTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingSmokeTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingTablesTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/PointOpsTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RoundStateTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/SystemFontHintingTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/TrueTypeInterpreterTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/UnitVectorTest.java   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/Lohit-Tamil.ttf   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-11.txt   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-13.txt   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-16.txt   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-24.txt   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/README.md
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/compare_points.py   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/ft_point_trace.c   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/ft_points_dump.py   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/generate_golden.py   (contents, props changed)
   pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/trace_diff.py   (contents, props changed)
   pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontHintingTest.java   (contents, props changed)
   pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDType0FontHintingTest.java   (contents, props changed)
   pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/HintingPpemTest.java   (contents, props changed)
   pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/RenderHintingIntegrationTest.java   (contents, props changed)
Modified:
   pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
   pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
   pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ViewMenu.java
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphRenderer.java
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java
   pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDVectorFont.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/GlyphCache.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
   pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawerParameters.java
   pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java
   pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java

NOTE: this message was too long when including "diff" contents.
      The contents have been replaced with URLs to display the
      diff contents on a web page.


Modified: pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java

Modified: pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java

Modified: pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ViewMenu.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/BytecodeStream.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ControlValueProgramTable.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ControlValueTable.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ExecutionContext.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/ExecutionTracer.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/Fixed.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/FontProgramTable.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/FunctionDef.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GaspTable.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphHinter.java

Modified: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphRenderer.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GraphicsState.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/HintingException.java

Modified: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java

Modified: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeInterpreter.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/UnitVector.java

Added: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/Zone.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/BackwardCompatibilityMoveTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/BytecodeStreamTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/FixedTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphTraceTool.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GoldenHintingTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/GraphicsStateTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintedPointsDumpTool.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingConcurrencyTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingIntegrationTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingSmokeTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/HintingTablesTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/PointOpsTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RoundStateTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/SystemFontHintingTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/TrueTypeInterpreterTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/UnitVectorTest.java

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/Lohit-Tamil.ttf
==============================================================================
Binary file. No diff available.

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-11.txt

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-13.txt

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-16.txt

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/LiberationSans-Regular-24.txt

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/README.md

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/compare_points.py

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/ft_point_trace.c

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/ft_points_dump.py

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/generate_golden.py

Added: pdfbox/branches/3.0/fontbox/src/test/resources/ttf/hinting/trace_diff.py

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDVectorFont.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/GlyphCache.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawerParameters.java

Added: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontHintingTest.java

Added: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDType0FontHintingTest.java

Added: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/HintingPpemTest.java

Added: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/RenderHintingIntegrationTest.java

Modified: pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/PDFToImage.java

Modified: pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java