2012-08-22 7 views
0

iOS 앱에서 인쇄를 설정 했으므로 정상적으로 작동합니다. 그러나 페이지 크기에 대한 사용자 기본 설정을 기반으로 문서를 생성합니다. 프린터 시스템에서 페이지 크기를 감지하여 대신 사용할 수 있기를 기대합니다. UIPrintPageRenderer의 paperRect 속성은 필자가 필요로하는 것처럼 보이지만 항상 0x0 크기를 반환합니다. 내가 놓친 게 있니? 아이폰 OS 4.2이 나와서 내가이 0x0를 받았을 때 나는 그것이 첫 번째 버전의 버그라고 생각 했어요 및 사용자 환경을 구현 할 때 나는이 시도UIPrintPageRenderer paperRect는 항상 0x0을 반환합니다.

UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController]; 
UIPrintPageRenderer *pageRenderer = [[UIPrintPageRenderer alloc] init]; 
printController.printPageRenderer = pageRenderer; 
NSLog(@"paper size: %f x %f", pageRenderer.paperRect.size.width, pageRenderer.paperRect.size.height); 

: 여기에 코드입니다. 하지만 이제는 iOS 5.1에서 같은 문제가 발생했는데 내가 잘못하고 있는지 궁금해합니다.

이 코드를 실행하면 사용자가 아직 프린터를 선택하지 않았으므로 paperRect에서 기본 용지 크기를 반환 할 것으로 예상됩니다. 사용자가 프린터를 선택한 후에 (예를 들어, 두 번째 문서를 인쇄 할 때) 다시 실행되면 프린터에 대해 선택된 용지 크기를 반환 할 것으로 예상됩니다. 하지만 이것은 단지 나의 기대 일뿐입니다 ... documentation은 그 값이 설정되는시기 또는 방법을 설명하지 않습니다.

다른 사용자가 동일한 결과를 얻는 지 또는 실제 페이지 크기를 얻기 위해 다른 작업을해야하는지 알면 도움이됩니다.

P. 위의 코드에 포함될 때 0x0을 반환하는 UIPrintInteractionController의 paperSize 속성도 살펴 보았습니다. 분명히 나중에 델리게이트 함수에 의해 인쇄 프로세스에서 업데이트되지만, 더 이상 살펴 보지 않았습니다.

답변

1

paperRect 및 printableRect는 numberOfPages에서 페이지 수를 계산하기 위해 사용됩니다. 사용자가 UIPrintInteractionController의 [인쇄] 단추를 누를 때까지 UIKit에서 paperRect 및 printableRect에 값을 설정하지 않습니다.

+0

당신이 맞습니다. UIPrintInteractionController 대리인 메서드 printInteractionControllerDidFinishJob :에서 이러한 속성을 확인하면 설정됩니다. 기본 용지 크기를 얻기 위해 인쇄하기 전에 인쇄물을 확인하면 예상대로 작동하지 않습니다. – arlomedia

관련 문제