如何使用AirPrint打印已locking的PDF时将密码传递给UIPrintInteractionController?

我想使用AirPrint打印一个locking的PDF在iOS上,我知道密码,我想知道是否有一种方法,当我使用它来打印时,将密码传递给UIPrintInteractionController ? 因为我不想使用CGPDFDocumentUnlockWithPassword来解锁PDF并绘制每一页。

我发现在使用AirPrint时没有必要传递密码
解锁pdf使用CGPDFDocumentUnlockWithPassword.You得到了一个CGPDFDocumentRef,从UIPrintPageRenderer声明一个子类。 实现 – (void)drawPageAtIndex:(NSInteger)pageIndex inRect:(CGRect)printableRect在上下文中呈现每个页面。 它可以是这样的

 - (void)drawPageAtIndex:(NSInteger)pageIndex inRect:(CGRect)printableRect { CGRect pageRect = CGPDFPageGetBoxRect([_item openPage:pageIndex +1], kCGPDFMediaBox); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor(context, 1.0,1.0,1.0,1.0); CGContextFillRect(context,printableRect); CGContextTranslateCTM(context, 0.0, printableRect.size.height); CGContextTranslateCTM(context, printableRect.origin.x, printableRect.origin.y); CGContextScaleCTM(context, printableRect.size.width/pageRect.size.width, -printableRect.size.height/pageRect.size.height); CGContextSaveGState(context); CGContextDrawPDFPage(context, [_item openPage:pageIndex + 1]); CGContextRestoreGState(context); } 

而且您不需要设置printingItem或printingItems。 因为你可以通过实现 – (NSInteger)numberOfPages获取页面范围

最后不要忘记将其设置为UIPrintInteractionController。