我正在制作一个扫描多页pdf文件的应用程序。我有一个PDFView
和一个PDFThumbnailView
链接。第一次完成扫描时,我创建一个新的PDFDocument
并将其设置为PDFView
. 然后,每当完成另一次扫描时,我都会添加一个PDFPage
到[pdfView document]
.
现在的问题是,无论何时添加页面,都不会更新PDFView
或PDFThumbnailView
更新以显示带有额外页面的新文档。直到我放大或缩小,然后它们都会更新以显示带有新页面的文档。
我现在拥有的临时解决方案(放大然后自动缩放)当然不是最好的解决方案。例如,当您已经放大文档并扫描新页面时,视图将自动缩放。我以前尝试[pdfView setNeedsDisplay:YES]
过,但这似乎不起作用。
这是扫描到达的方法NSData
:
- (void)scannerDevice:(ICScannerDevice *)scanner didScanToURL:(NSURL *)url data:(NSData *)data {
//Hide the progress bar
[progressIndicator stopAnimation:nil];
//Create a pdf page from the data
NSImage *image = [[NSImage alloc] initWithData:data];
PDFPage *page = [[PDFPage alloc] initWithImage:image];
//If the pdf view has a document
if ([pdfView document]) {
//Set the page number and add it to the document
[page setValue:[NSString stringWithFormat:@"%d", [[pdfView document] pageCount] + 1] forKey:@"label"];
[[pdfView document] insertPage:page atIndex:[[pdfView document] pageCount]];
} else {
//Create a new document and add the page
[page setValue:@"1" forKey:@"label"];
PDFDocument *document = [[PDFDocument alloc] init];
[document insertPage:page atIndex:0];
[pdfView setDocument:document];
}
//Force a redraw for the pdf view so the pages are shown properly
[pdfView zoomIn:self];
[pdfView setAutoScales:YES];
}
有谁知道我可以添加 aPDFPage
并进行PDFView
更新而不会弄乱缩放状态的方法PDFView
?