Revision: 13274
          http://sourceforge.net/p/skim-app/code/13274
Author:   hofman
Date:     2023-02-01 10:44:41 +0000 (Wed, 01 Feb 2023)
Log Message:
-----------
get fontColor from /DA annotation value

Modified Paths:
--------------
    trunk/SkimNotes/PDFAnnotation_SKNExtensions.m

Modified: trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
===================================================================
--- trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2023-02-01 10:00:37 UTC 
(rev 13273)
+++ trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2023-02-01 10:44:41 UTC 
(rev 13274)
@@ -441,11 +441,29 @@
             if (font)
                 [dict setObject:font forKey:SKNPDFAnnotationFontKey];
             
+            NSColor *fontColor = nil;
             if ([self respondsToSelector:@selector(fontColor)]) {
-                NSColor *fontColor = [(PDFAnnotationFreeText *)self fontColor];
-                if (fontColor)
-                    [dict setObject:fontColor 
forKey:SKNPDFAnnotationFontColorKey];
+                fontColor = [(PDFAnnotationFreeText *)self fontColor];
             }
+            if (fontColor == nil && (value = [self 
valueForAnnotationKey:@"/DA"])) {
+                NSUInteger end = [value rangeOfString:@"rg"].location;
+                if (end != NSNotFound) {
+                    NSCharacterSet *numberChars = [NSCharacterSet 
characterSetWithCharactersInString:@"0123456789. "];
+                    NSUInteger start = end;
+                    while (start > 0 && [numberChars characterIsMember:[value 
characterAtIndex:start--]]) {}
+                    if (start < end) {
+                        NSScanner *scanner = [[NSScanner alloc] 
initWithString:[value substringWithRange:NSMakeRange(start, end - start)]];
+                        CGFloat c;
+                        NSMutableArray *array = [NSMutableArray array];
+                        while ([scanner scanDouble:&c])
+                            [array addObject:[NSNumber numberWithDouble:c]];
+                        fontColor = SKNColorFromArray(array);
+                        [scanner release];
+                    }
+                }
+            }
+            if (fontColor)
+                [dict setObject:fontColor forKey:SKNPDFAnnotationFontColorKey];
         }
         
         if ([type isEqualToString:SKNWidgetString]) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to