Cocoa - 从文件系统中读取PDF文件并打印出来

时间:2013-10-02 18:10:08

标签: cocoa pdf printing

我正在尝试打印从文件系统中读取的PDF文件。但是不能让它发挥作用。我知道我必须在视图中包含该文件,然后打印视图。

这是我的打印方法:

NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
NSPrintOperation *PDFPrint = [NSPrintOperation printOperationWithView:_pdfView printInfo:printInfo];
[PDFPrint setCanSpawnSeparateThread:YES];
[PDFPrint setShowsProgressPanel:YES];
[PDFPrint runOperation];

这就是我创建视图的方式:

PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:fileURL];

PDFPage *firstPage = [pdfDocument pageAtIndex:0];
NSRect bounds = [firstPage boundsForBox:kPDFDisplayBoxMediaBox];
NSSize pixelSize = bounds.size;
NSSize documentSize;

documentSize.width = pixelSize.width;
documentSize.height = pixelSize.height;
PDFView *PDFDocumentView = [[PDFView alloc] initWithFrame:NSMakeRect(0, 0, documentSize.width, documentSize.height)];

[PDFDocumentView setDisplayMode:kPDFDisplaySinglePage];
[PDFDocumentView setDisplayBox:kPDFDisplayBoxMediaBox];
[PDFDocumentView setAutoScales:NO];
[PDFDocumentView setDocument:pdfDocument];
[PDFDocumentView setBackgroundColor:[NSColor redColor]];

return PDFDocumentView;

当我来回调整这个时,我已经设法打印PDF,但它没有正确对齐。

关于对齐方式。我可以看到我创建的红色背景,我无法看到pdf右侧的部分内容。

那么我如何最好地阅读然后打印PDF文件呢?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我改为使用:

,它似乎可以正确缩放
[PDFDocumentView printWithInfo:printInfo autoRotate:NO];