2013-07-08 5 views
8

Così sto attualmente cercando di stampare un pdf che ho caricato in una WebView in un'applicazione Cocoa, che è dimensionato dove se vuoi vedere l'intera cosa che hai scorrere. Il problema è che ogni volta che la stampa, viene stampato solo ciò che è attualmente visualizzato nella WebView e non la totalità della pagina, con il codice come questo:Stampa dell'intero contenuto di WebView in cacao, non appena visualizzato

[[[[WebView mainFrame] frameView] documentView] print:sender]; 

non sono sicuro se sto solo cercando di stampa la parte sbagliata di esso, o semplicemente bisogno di andare su questo in un altro modo, e apprezzerebbe molto un aiuto.

+0

Prova printDocumentView –

+0

Come in '[[[mainFrame WebView] frameView] printDocumentView]'? Non ho fatto nulla, nemmeno un errore. Vorrei anche ricordare che ho determinato che il problema riguarda solo i pdf e verrà modificato sopra. – Zoz

risposta

14

Vedo che questa è una domanda vecchia, ma poiché non ci sono ancora risposte, ho pensato di fornire questo a chiunque cerchi.

NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo]; 

// This is your chance to modify printInfo if you need to change 
// the page orientation, margins, etc 
[printInfo setOrientation:NSLandscapeOrientation]; 

NSPrintOperation *printOperation = [yourWebView.mainFrame.frameView 
            printOperationWithPrintInfo:printInfo]; 

// Open the print dialog 
[printOperation runOperation]; 

// If you want your print window to appear as a sheet instead of a popup, 
// use this method instead of -[runOperation] 
[printOperation runOperationModalForWindow:yourWindow 
            delegate:self 
          didRunSelector:@selector(printDidRun) 
           contextInfo:nil]; 
+2

Ho dovuto usare 'NSPaperOrientationLandscape' invece di' NSLandscapeOrientation' – Todd

+2

Ho scoperto che per ottenere l'HTML completo è necessario stampare documentView: yourWebView.mainFrame.frameView.documentView – SarahR

0

Il seguente codice Swift funziona per me:

NSPrintOperation(view: webView.mainFrame.frameView.documentView).runOperation()