AirPrintを使用してロックされたPDFをiOSで印刷したいのですが、パスワードを知っています。パスワード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 に答える