0

AirPrintを使用してロックされたPDFをiOSで印刷したいのですが、パスワードを知っています。パスワードUIPrintInteractionControllerを使用して印刷するときにパスワードを渡す方法があるかどうか知りたいですか?CGPDFDocumentUnlockWithPasswordPDFのロックを解除してすべてのページを描画するために使用したくないからです。

4

1 に答える 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 に答える