[ https://issues.apache.org/jira/browse/PDFBOX-5843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17856283#comment-17856283 ]
Tilman Hausherr edited comment on PDFBOX-5843 at 6/19/24 2:16 PM: ------------------------------------------------------------------ Lets assume that the font is correct. I fixed the bug locally that empty entries now get skipped in CFFParser.java, by adding {{if (bytes.length == 0) continue;}} after {{for (byte[] bytes : fdIndex)}}. My first thought was that something goes wrong with the offsets because there is more than one fdindex entry. But I haven't been able to prove this. I also tried to install FontForge but it doesn't show anything. readIndexData char strings: code 9987 len 153 at offset 298684 code 12431 len 245 at offset 301280 code 14225 len 135 at offset 303318 for code 9987 (which has this "over the top" path) I checked that position and length make sense, all the other bytes before/after are 0x0e, which is ENDCHAR type2 charstring: [-78, 63, 362, 64, 158, 63, 69, 61, HSTEM|, 664, 69, VSTEM|, 67, 290, RMOVETO|, 54, -35, 57, -42, 52, -43, -54, -90, -68, -64, -81, -40, 15, -12, 20, -25, 8, -16, 85, 47, 70, 65, 57, 90, 43, -39, 37, -39, 25, -33, 47, 56, RCURVELINE|, -27, 35, -42, 41, -49, 41, 55, 112, 36, 143, 16, 182, -42, -55, -153, HLINETO|, 14, 70, 12, 69, 9, 63, -66, 4, RCURVELINE|, -7, -63, -12, -71, -14, -72, RRCURVETO|, -110, -63, 97, HLINETO|, -22, -105, -27, -102, -24, -72, RRCURVETO|, 286, 279, RMOVETO|, -16, -135, -31, -112, -43, -92, -39, 30, -42, 30, -40, 26, 21, 73, 22, 89, 19, 91, RRCURVETO|, 460, -39, 12902, ENDCHAR|] converted to type1 sequence: [0, 1000.0, HSBW|, 453, 414, RMOVETO|, -29, -122, -48, -120, -64, -78, RRCURVETO|, 17, -9, 28, -18, 13, -10, RRCURVETO|, 62, 84, 54, 127, 33, 132, RRCURVETO|, CLOSEPATH|, 242, 1, RMOVETO|, 56, -106, 52, -142, 17, -92, RRCURVETO|, 63, 22, RLINETO|, -17, 92, -52, 139, -59, 106, RRCURVETO|, CLOSEPATH|, -353, 414, RMOVETO|, -33, -149, -57, -145, -74, -94, RRCURVETO|, 16, -10, 26, -22, 12, -11, RRCURVETO|, 36, 49, 33, 60, 29, 68, RRCURVETO|, 160, HLINETO|, -575, VLINETO|, 0, -13, -5, -4, -12, 0, RRCURVETO|, -14, 0, -43, -1, -49, 2, RRCURVETO|, 0, 10, -19, 11, 0, 9342, RRCURVETO|, 575, VLINETO|, 200, HLINETO|, -9, -53, -10, -55, -7, -37, RRCURVETO|, 57, -11, RLINETO|, 13, HLINETO|, 53, VLINETO|, 18, HLINETO|, 86, VLINETO|, 13, HLINETO|, 72, VLINETO|, -46, HLINETO|, -55, VLINETO|, -419, HLINETO|, 21, 56, 18, 60, 14, 60, RRCURVETO|] The many negative values are a "zone of interest". was (Author: tilman): Lets assume that the font is correct. I fixed the bug locally that empty entries now get skipped in CFFParser.java, by adding {{if (bytes.length == 0) continue;}} after {{for (byte[] bytes : fdIndex)}}. My first thought was that something goes wrong with the offsets because there is more than one fdindex entry. But I haven't been able to prove this. I also tried to install FontForge but it doesn't show anything. readIndexData char strings: code 9987 len 153 at offset 298684 code 12431 len 245 at offset 301280 code 14225 len 135 at offset 303318 for code 9987 (which has this "over the top" path) I checked that position and length make sense, all the other bytes before/after are 0x0e, which is ENDCHAR type2 charstring: [-78, 63, 362, 64, 158, 63, 69, 61, HSTEM|, 664, 69, VSTEM|, 67, 290, RMOVETO|, 54, -35, 57, -42, 52, -43, -54, -90, -68, -64, -81, -40, 15, -12, 20, -25, 8, -16, 85, 47, 70, 65, 57, 90, 43, -39, 37, -39, 25, -33, 47, 56, RCURVELINE|, -27, 35, -42, 41, -49, 41, 55, 112, 36, 143, 16, 182, -42, -55, -153, HLINETO|, 14, 70, 12, 69, 9, 63, -66, 4, RCURVELINE|, -7, -63, -12, -71, -14, -72, RRCURVETO|, -110, -63, 97, HLINETO|, -22, -105, -27, -102, -24, -72, RRCURVETO|, 286, 279, RMOVETO|, -16, -135, -31, -112, -43, -92, -39, 30, -42, 30, -40, 26, 21, 73, 22, 89, 19, 91, RRCURVETO|, 460, -39, 12902, ENDCHAR|] converted to type1 sequence: [0, 1000.0, HSBW|, 453, 414, RMOVETO|, -29, -122, -48, -120, -64, -78, RRCURVETO|, 17, -9, 28, -18, 13, -10, RRCURVETO|, 62, 84, 54, 127, 33, 132, RRCURVETO|, CLOSEPATH|, 242, 1, RMOVETO|, 56, -106, 52, -142, 17, -92, RRCURVETO|, 63, 22, RLINETO|, -17, 92, -52, 139, -59, 106, RRCURVETO|, CLOSEPATH|, -353, 414, RMOVETO|, -33, -149, -57, -145, -74, -94, RRCURVETO|, 16, -10, 26, -22, 12, -11, RRCURVETO|, 36, 49, 33, 60, 29, 68, RRCURVETO|, 160, HLINETO|, -575, VLINETO|, 0, -13, -5, -4, -12, 0, RRCURVETO|, -14, 0, -43, -1, -49, 2, RRCURVETO|, 0, 10, -19, 11, 0, 9342, RRCURVETO|, 575, VLINETO|, 200, HLINETO|, -9, -53, -10, -55, -7, -37, RRCURVETO|, 57, -11, RLINETO|, 13, HLINETO|, 53, VLINETO|, 18, HLINETO|, 86, VLINETO|, 13, HLINETO|, 72, VLINETO|, -46, HLINETO|, -55, VLINETO|, -419, HLINETO|, 21, 56, 18, 60, 14, 60, RRCURVETO|] The many negative values are a "zone of interest". > There is an exception when getting embedded font, is it compatible? > ------------------------------------------------------------------- > > Key: PDFBOX-5843 > URL: https://issues.apache.org/jira/browse/PDFBOX-5843 > Project: PDFBox > Issue Type: Bug > Components: FontBox > Affects Versions: 2.0.31, 3.0.2 PDFBox > Reporter: liu > Priority: Major > Attachments: 123.pdf, image-2024-06-19-16-49-40-186.png, > screenshot-1.png, screenshot-2.png, xxx.cff > > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org