Someone with actual Java skills could probably do it. Most likely place to look at would be "YJReader-impl.jar" file and inside that there is a class "YJBookController.class".
It contains references to "font.size.mapping" inside method named "axO":
Code:
...
private boolean debug = false;
private static final String aQi = "/mnt/us/CONTENT_FONT_RAMP";
...
public float[] axO() {
float[] arrf;
if (this.debug && (arrf = ReaderUtils.E((String)aQi, (int)this.mE().length)) != null && arrf.length > 0) {
return arrf;
}
return (float[])ResourceBundle.getBundle(jb).getObject("font.size.mapping");
}
The code is from firmware 5.9.7 for PW3.
As far as I've managed to understand the code if a field/member variable named "debug"
wasn't set to "false" Kindle users would be able to re-define font sizes used for KFX books by creating a text file at "/mnt/us/CONTENT_FONT_RAMP" in the same way we can re-define font sizes for KF8 books by using "/mnt/us/FONT_RAMP".
So a Java & Java ByteCode guy that is well versed in decompiling & recompiling code would probably just need to "toggle" that "debug" variable value to enable parsing of "CONTENT_FONT_RAMP" file.
---------------------
EDIT: OK, I've just tested it an confirmed that it is working as expected.
So, the only thing that needs to be changed is
line 15 of init method of "YJBookController.class"
before change:
Code:
iconst_0
putfield com/amazon/ebook/booklet/yjreader/impl/YJBookController/debug Z
after change:
Code:
iconst_1
putfield com/amazon/ebook/booklet/yjreader/impl/YJBookController/debug Z
Then just create "CONTENT_FONT_RAMP" with the same type of content (14 decimal/float type numbers) that you would use (or were already using, like I was) in "FONT_RAMP", reboot Kindle and it should work.
I noticed that KFX book will have slightly smaller font sizes for the same values... am to lazy to check if it because of the difference in "base font size" between two books or just Kindle using different "scaling" for those 2 book formats (KFX and KF8/AZW3).