2014-04-22 13 views
5

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?

  1. 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

  2. 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

  3. 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

  1. 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?

  2. 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?

  3. 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?

Trả lời

-1

PDF là định dạng tệp sở hữu độc quyền mà Apple đã cố tình quyết định không chơi tốt với nhiều lý do chủ yếu là chính trị - công ty. Chất lượng của PDF mà bạn kết thúc với hoàn toàn phụ thuộc vào thư viện bạn đang sử dụng - và từ âm thanh của nó, Mavericks mới nhất của bạn đang sử dụng một thư viện trình điều khiển khác với ít hơn lý tưởng.

Nếu bạn đang kết xuất HTML/sử dụng Webkit, có sự cố đã biết với Mavericks trong đó các tệp PDF không được Safari xử lý theo mặc định đúng cách. Để cập nhật điều này, hãy chạy lệnh này từ thiết bị đầu cuối máy chủ của bạn.

defaults write com.apple.Safari WebKitOmitPDFSupport -bool NO 

Tải bản sao mới nhất của Adobe Reader & cài đặt nó có thể cung cấp cho bạn/cài đặt lại/làm mới các trình điều khiển thích hợp cũng như nếu điều này không làm việc.

Các vấn đề liên quan