2010-04-06 6 views
3

J'essaie de configurer une boîte de dialogue d'impression, de sorte que si l'utilisateur essaie d'enregistrer au format PDF, il obtient un nom de fichier raisonnable.définir un nom de fichier dans NSPrintInfo

J'ai actuellement:

NSPrintInfo* pi = [NSPrintInfo sharedPrintInfo]; 
NSMutableDictionary *dict = [pi dictionary]; 
[dict setObject: name forKey: NSPrintSavePath]; 
[dict setObject: name forKey: @"NSPrintSavePath"]; 
NSPrintOperation *op = [pdfDoc getPrintOperationForPrintInfo:pi 
            autoRotate:YES]; 
[op runOperation]; 

le champ NSPrintSave dans le dictionnaire est correct, mais la zone de texte continue à venir avec « .pdf.pdf »

toute pensée sur où ça vient?

Ajouté info:

Quand j'imprimer mon objet NSPrintInfo, je reçois:

print info { 
    NSBottomMargin = 90; 
    NSCopies = 1; 
    NSDetailedErrorReporting = 0; 
    NSFaxNumber = ""; 
    NSFirstPage = 1; 
    NSHorizonalPagination = 2; 
    NSHorizontallyCentered = 1; 
    NSJobDisposition = NSPrintSpoolJob; 
    NSJobSavingFileNameExtensionHidden = 0; 
    NSJobSavingURL = bob -- /; 
    NSLastPage = 2147483647; 
    NSLeftMargin = 72; 
    NSMustCollate = 1; 
    NSOrientation = 0; 
    NSPagesAcross = 1; 
    NSPagesDown = 1; 
    NSPaperName = "na-letter"; 
    NSPaperSize = NSSize: {612, 792}; 
    NSPrintAllPages = 1; 
    NSPrintProtected = 0; 
    NSPrintSavePath = bob; 
    NSPrintTime = 0001-12-31 19:00:00 -0500; 
    NSPrinter = { 
     "Device Description" =  { 
      NSDeviceIsPrinter = YES; 
      }; 
     "Language Level" = 2; 
     Name = "Xerox WorkCentre PE120 Series (XRX0000aa9915f0)"; 
     Type = "Generic PostScript Printer"; 
    }; 
    NSPrinterName = "Xerox WorkCentre PE120 Series (XRX0000aa9915f0)"; 
    NSRightMargin = 72; 
    NSSavePath = bob; 
    NSScalingFactor = 1; 
    NSTopMargin = 90; 
    NSVerticalPagination = 0; 
    NSVerticallyCentered = 1; 
} 

Je woud pense que cela signifierait que le nom de fichier par défaut pour imprimer à serait « bob », ou "bob.pdf" mais c'est toujours ".pdf.pdf" ...

Répondre

6

La réponse, semble-t-il, est d'ignorer complètement NSPrintInfo et de regarder NSPrintOperation. évidemment, NSPrintOperation a une méthode setJobTitle, qui ne fait que The Right Thing (tm).

Maintenant, pourquoi aucune de mes recherches google n'a trouvé ceci (tout cela a conduit à ce que j'ai essayé ci-dessus) Je ne sais vraiment pas ...

Questions connexes