我想使用AirPrint在iOS上打印锁定的pdf,我知道密码,我想知道是否有办法将密码传递给UIPrintInteractionController
我使用它打印的时候?因为我不想CGPDFDocumentUnlockWithPassword
用来解锁pdf并绘制每一页。
问问题
787 次
1 回答
0
我发现使用 AirPrint 时不需要传递密码。一旦你
解锁了 pdf,使用 CGPDFDocumentUnlockWithPassword。你得到一个 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 。
于 2012-09-07T08:46:38.737 回答