3

一連の画像から作成している PDFDocument を印刷しようとしています。念のために言うと、私はこれらすべてを Mozilla プラグイン内から実行しています。

PDFDocument を作成し、それを PDFView に配置してから、

[printView printWithInfo: [NSPrintInfo sharedPrintInfo] autoRotate: YES];

印刷ダイアログが表示されます (パネルではなく別のウィンドウとして表示されます。これは mozilla ウィンドウ内にあるためだと思いますので、あまり心配していませんでした。ダイアログにはドキュメントが表示され、正しくページをめくることができます)。 、そしてすべてが良さそうです。

ただし、「印刷」を押すと、「レイアウト」などのドロップダウンが空になり、その下のビューが空になります。ウィンドウは消えず、ドキュメントは印刷されません。キャンセルを押すと、まったく同じことが行われます。その場合、私にできる唯一のことは、Mozilla を強制終了することです。

Apple dev サイトのPDFKitLinker2を基にプログラムを作成しましたが、そのプログラムは動作します。しかし、それと私のバージョンの間に大きな違いは見られません。

どこを見るべきかについて何か提案はありますか?

ありがとう。

編集:はい、これは印刷オフスクリーン PDFViewsのほぼ正確な複製であることを知っていますが、十分な答えは得られませんでした... (そして、今まで気づきませんでした...)

4

2 に答える 2

7

ここでメモリ管理の問題があるようです。コンソール ログをチェックして、例外がスローされているかどうかを確認しましたか? をどのように作成していますPDFViewか?

しかし、なぜWebKitのようにしないのでしょうか?

具体的には、カテゴリを宣言しますPDFDocument

@interface PDFDocument (PDFSecretsIKnowViaWebKit)
- (NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;
@end

次に、印刷したいときは、そこからPDFDocument取得しNSPrintOperationて実行するだけです。

NSPrintOperation *op = [myPDFDoc getPrintOperationForPrintInfo:info autoRotate:YES];
[op runOperation];
// [op runOperationModalForWindow:delegate:didRunSelector:contextInfo:] if you have a window to attach it to
于 2010-03-21T22:46:08.887 に答える
1

これは私にとってもうまくいきます。getPrintOperationForPrintInfo:autoRotate: が存在し、10.4、10.5、および 10.6 で正しく動作しているように見えることを確認しました。

于 2010-05-14T22:39:18.503 に答える