2013-07-08 10 views
8

Obecnie próbuję wydrukować plik pdf, który wczytałem do WebView w aplikacji Cocoa, o rozmiarze do miejsca, w którym chcesz zobaczyć całość, którą masz przewijać. Problem polega na tym, że gdy drukuje, drukuje tylko to, co jest aktualnie wyświetlane w WebView a nie całość strony, z kodem tak:Drukowanie całej zawartości WebView w kakao, nie tylko wyświetlana

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

Nie jestem pewien, czy ja po prostu staramy się drukiem niewłaściwa część lub po prostu trzeba to zrobić w inny sposób i bardzo doceniłaby jakąś pomoc.

+0

Spróbuj printDocumentView –

+0

jak w '[[[WebView mainframe] frameView] printDocumentView]'? Nic nie zrobiłem, nawet błąd. Powinienem też wspomnieć, że postanowiłem, że problem dotyczy tylko plików PDF i będzie edytowany powyżej. – Zoz

Odpowiedz

14

Widzę, że jest to stare pytanie, ale ponieważ nie ma jeszcze żadnych odpowiedzi, pomyślałem, że zapewnię to każdemu, kto będzie szukał.

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

Musiałem użyć 'NSPaperOrientationLandscape' zamiast' NSLandscapeOrientation'' – Todd

+2

Znalazłem, że aby uzyskać kompletny HTML, konieczne jest wydrukowanie documentView: yourWebView.mainFrame.frameView.documentView – SarahR

0

Poniższy kod Swift pracuje dla mnie:

NSPrintOperation(view: webView.mainFrame.frameView.documentView).runOperation() 
Powiązane problemy