データのテーブルを含む NSTextView があり、drawPageBorderWithSize: メソッドをオーバーライドして、ページ フッター (ページ番号) を描画し、ページ ヘッダーにページ タイトルを含めます。NSPrintOperation を使用して印刷パネルを表示すると、すべてが正常に機能します。
しかし、私は自分のウィンドウにプレビューを表示する必要があります(印刷パネルのプレビューではありません)。そのために、次のようにビューを PDF データにエクスポートしようとしました:
NSMutableData *pdfData = [[NSMutableData alloc]init];
NSPrintOperation *pdfOperation = [NSPrintOperation PDFOperationWithView:printView insideRect:NSMakeRect(0, 0, 600, 900) toData:pdfData printInfo:myPrintInfo];
[pdfOperation runOperation];
PDFDocument *pdfDocument = [[PDFDocument alloc]initWithData:pdfData];
[pdfDocument writeToFile:@"/my directory/Test.pdf"];
しかし、この PDF ファイルにはテーブルのみが表示され、drawPageBorderWithSize を使用して作成したヘッダーとフッターは表示されません。また、myPrintInfo で狂ったように余白はありません。
また、このエラーが発生しました:
アサーションに失敗しました: (s->stack->next != NULL)、関数 CGGStackRestore、ファイル Context/CGGStack.c、77 行目。
NSPrintOperation to PDF で NSTextView のすべてが表示されないのはなぜですか??!!