Run sample project và quan sát đầu ra PDF được tạo ra trên Desktop có tên SaveWebPage.pdfTại sao dataWithPDFInsideRect từ WebView không tạo PDF với chất lượng cao trên Mavericks?
Dán đoạn mã đó là quan tâm
NSURL *url = [[NSBundle mainBundle] URLForResource:@"Page" withExtension:@"html"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[[self.webview mainFrame] loadRequest:req];
NSView *view = [[[self.webview mainFrame] frameView] documentView];
NSData *data = [view dataWithPDFInsideRect:[view bounds]];
NSArray* deskTopArrayPaths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString* deskTopPath = [deskTopArrayPaths objectAtIndex:0];
NSString* pdfPath = [NSString stringWithFormat:@"%@/SaveWebPage.pdf",deskTopPath];
PDFDocument *doc = [[PDFDocument alloc] initWithData:data];
[doc writeToFile:pdfPath];
gì đoạn mã trên không?
Một WebView được sử dụng để nạp HTML trong đó có PDF nhúng trong nó bằng cách sử dụng img thẻ. Xem nguồn html here
Sau khi tải webview, cố gắng để có được dữ liệu PDF từ độ xem tài liệu sử dụng NSView của dataWithPDFInsideRect phương pháp
dữ liệu PDF trong ký ức được ghi vào đĩa
Kết quả
Trên các phiên bản trước khi Mavericks (tức là 10.8 và 10.7) đoạn mã trên tạo ra một tài liệu PDF có chất lượng cao với nội dung có thể đọc được. Khi PDF đầu ra được mở trong ứng dụng Xem trước, nội dung PDF được hiển thị với chất lượng cao và khi phóng to thu nhỏ sẽ diễn ra mà không ảnh hưởng đến chất lượng hình ảnh. See Mountain Lion output PDF here
On Mavericks (10.9), đoạn mã trên mã tạo ra một tài liệu PDF với nội dung của nó bị mờ với chất lượng hình ảnh suy thoái See Mavericks output PDF here
Câu hỏi
là dataWithPDFInsideRect: không làm việc trên Mavericks như nó đã làm việc trước đây trên các phiên bản trước của OSX?
Có thay đổi nào trong cách tôi phải nhúng PDF trong HTML (từ Mavericks trở đi) cho Webkit để hiển thị chúng đúng cách không?
Có cách nào khác để lấy pdf từ cùng một HTML với chất lượng tốt hơn trên Mavericks không?