Trong ứng dụng tôi đang tạo ra, tôi tải một trang dài của HTML thành một WebView và sau đó in nó vào một PDF bằng cách sử dụng sau đây:Cocoa trang PDF tách
-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
if ([frame isEqual:[[self doc] mainFrame]])
{
NSMutableData *newData = [[NSMutableData alloc] init];
NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];
NSView *docView = [[[[self doc] mainFrame] frameView] documentView];
NSPrintOperation *newPrintOp = [NSPrintOperation PDFOperationWithView:docView insideRect:docView.bounds toData:newData printInfo:newInfo];
BOOL runPrint = [newPrintOp runOperation];
if (!runPrint)
{
NSLog(@"Print Failed");
}
PDFDocument *newDoc = [[PDFDocument alloc] initWithData:newData];
[newData release];
[self setPdf:newDoc];
//Other code here
}
}
Vấn đề là khi tôi nhìn tại newDoc
, đó là một tệp PDF khổng lồ của một trang. Những gì tôi thích sẽ là in ấn hành động giống như nó từ hộp thoại "lưu dưới dạng PDF ..." - tức là, chia nhỏ PDF thành nhiều trang có kích thước hợp lý.
Có ai biết cách thực hiện điều này không?
Tôi đã cố gắng chèn sau đây sau khi NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];
[newInfo setVerticalPagination:NSAutoPagination];
[newInfo setHorizontalPagination:NSAutoPagination];
NSAutoPagination được mô tả trong các tài liệu như sau:
NSAutoPagination Những hình ảnh được chia thành hình chữ nhật kích thước bằng nhau và được đặt trong một cột của các trang. Có trong Mac OS X v10.0 trở lên. Được khai báo trong NSPrintInfo.h.
Điều này không ảnh hưởng đến tệp PDF được in.
Câu trả lời tuyệt vời! Nếu không ai khác đưa ra một câu trả lời tốt hơn trong ngày hôm sau, tôi sẽ trao tiền thưởng cho bạn. Cảm ơn bạn đã giúp đỡ. – Daniel
Vâng, tôi sẽ không tỉnh táo vào cuối của bounty, vì vậy bạn sẽ thắng! – Daniel
Điều này đã giúp tôi. Câu trả lời hay. –