KMTools_OC.m 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // KMTools_OC.m
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2023/3/27.
  6. //
  7. #import "KMTools_OC.h"
  8. #import <AppKit/AppKit.h>
  9. @implementation KMTools_OC
  10. + (BOOL)isDefaultRoleHandlerForContentType:(NSString*)fileExtension {
  11. NSString *app = (NSString*)CFBridgingRelease(LSCopyDefaultRoleHandlerForContentType((CFStringRef)CFBridgingRetain([self UTIforFileExtension:fileExtension]),
  12. kLSRolesAll));
  13. if ([app isEqualToString:[[NSBundle mainBundle] bundleIdentifier]]) {
  14. return YES;
  15. }
  16. return NO;
  17. }
  18. + (BOOL)setMyselfAsDefaultApplicationForFileExtension:(NSString *) fileExtension {
  19. OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType ((CFStringRef)CFBridgingRetain([self UTIforFileExtension:fileExtension]),
  20. kLSRolesAll,
  21. (CFStringRef) CFBridgingRetain([[NSBundle mainBundle] bundleIdentifier]));
  22. if (returnStatus != 0) {
  23. return NO;
  24. }
  25. return YES;
  26. }
  27. + (BOOL) setPreviewAsDefaultApplicationForFileExtension:(NSString *) fileExtension {
  28. OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType ((CFStringRef)CFBridgingRetain([self UTIforFileExtension:fileExtension]),
  29. kLSRolesAll,
  30. (CFStringRef)@"com.apple.Preview");
  31. if (returnStatus != 0) {
  32. return NO;
  33. }
  34. return YES;
  35. }
  36. #pragma mark --SetDefaultRoleHandlerForContentType
  37. + (NSString *)UTIforFileExtension:(NSString *) extension {
  38. NSString * UTIString = (NSString *)CFBridgingRelease(UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
  39. (CFStringRef)CFBridgingRetain(extension),
  40. NULL));
  41. return UTIString;
  42. }
  43. @end
  44. @implementation KMPageSizeTool
  45. + (NSString *)conversionWithUnit:(NSString *)unit value:(CGFloat)value
  46. {
  47. CGFloat f = value;
  48. if ([unit isEqualToString:@"cm"]) {
  49. f = value/10.0;
  50. } else if([unit isEqualToString:@"in"]){
  51. f = value/25.4;
  52. } else {
  53. f = value;
  54. }
  55. if (fmodf(f, 1)==0) {//如果有一位小数点
  56. return [NSString stringWithFormat:@"%.0f",f];
  57. } else if (fmodf(value*10, 1)==0) {//如果有两位小数点
  58. return [NSString stringWithFormat:@"%.1f",f];
  59. } else {
  60. return [NSString stringWithFormat:@"%.2f",f];
  61. }
  62. }
  63. @end