home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / Rhapsody / Publishing / PDFConvert-0.1 / PDFConverter.m < prev    next >
Encoding:
Text File  |  1998-01-03  |  2.6 KB  |  106 lines

  1. #import "PDFConverter.h"
  2. #import "NSTask+utils.h"
  3.  
  4. @implementation PDFConverter
  5.  
  6. - init
  7. {
  8.         [NSApp setDelegate:self];
  9.         return self;
  10. }
  11.  
  12. - (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename 
  13. {
  14.         [inputFileName setStringValue:filename];
  15.         [outputFileName setStringValue:@"/tmp/foo.ps"];
  16.  
  17.         [self convert:self];
  18.         
  19.         return YES;
  20. }
  21.  
  22. - (void)awakeFromNib
  23. {
  24.         [userMessage setStringValue:@""];
  25. }
  26.  
  27.  
  28. - (void)convert:(id)sender
  29. {
  30.         NSMutableString    *taskString = [NSMutableString string];
  31.        NSTask *aTask;
  32.         NSMutableArray *args;
  33.  
  34.     
  35.         aTask = [[[NSTask alloc] init] autorelease];
  36.     
  37.         [aTask setCurrentDirectoryPath:[[NSBundle mainBundle] resourcePath]];
  38.         [taskString appendString:[[NSBundle mainBundle] resourcePath]];
  39.         
  40.         if ([convertToPS state]) {
  41.             [taskString appendString:@"/pdftops"];
  42.         } else {
  43.                 [taskString appendString:@"/pdftotext"];
  44.         }
  45.         
  46.         [aTask setLaunchPath:taskString];
  47.  
  48.         if (![[inputFileName stringValue] length]) {
  49.                 [userMessage setStringValue:@"No input file specified"];
  50.                 return;
  51.         }
  52.     if (![[outputFileName stringValue] length]) {
  53.                 [userMessage setStringValue:@"No output file specified"];
  54.                 return;
  55.         }
  56.  
  57.  
  58.         args = [NSMutableArray arrayWithObjects:[inputFileName stringValue], [outputFileName stringValue], nil];
  59.         [aTask setArguments:args];
  60.         [aTask launch];
  61.         [aTask waitUntilExit];
  62.     
  63.     [userMessage setStringValue:@"Conversion complete"];
  64.  
  65.     if ([openFileAfterConversion state]) {
  66.                 [[NSWorkspace sharedWorkspace]openFile:[outputFileName stringValue]];
  67.         }        
  68.         
  69. }
  70.  
  71. - (void)setInputFileNameFromButton:(id)sender
  72. {
  73.     NSOpenPanel *openPanel;
  74.         int result;
  75.         NSArray *types = [NSArray arrayWithObject:@"pdf"];
  76.  
  77.         openPanel = [NSOpenPanel openPanel];
  78.         [openPanel setAllowsMultipleSelection:NO];
  79.         result = [openPanel runModalForTypes:types];
  80.         if (result == NSOKButton) {
  81.                 [inputFileName setStringValue:[openPanel filename]];
  82.         }
  83.         
  84. }
  85.  
  86. - (void)setOutputFileNameFromButton:(id)sender
  87. {
  88.     NSSavePanel *savePanel;
  89.         int result;
  90.         
  91.         savePanel = [NSSavePanel savePanel];
  92.         if ([convertToPS state]) {
  93.                 [savePanel setRequiredFileType:@"ps"];
  94.         } else {
  95.                 [savePanel setRequiredFileType:@"txt"];
  96.         }
  97.  
  98.         result = [savePanel runModalForDirectory:NSHomeDirectory() file:@""];
  99.         if (result == NSOKButton) {
  100.                 [outputFileName setStringValue:[savePanel filename]];
  101.         }
  102.         
  103. }
  104.  
  105. @end
  106.