CoreText を使用して一連の を含む PDF ドキュメントをNSAttributedString
作成しているので、 を作成してCTFrameSetterRef
ページ全体をカバーするフレームを作成し、 を使用してループしてCTFrameDraw
テキストを描画し、 の結果をチェックして、CTFrameGetVisibleStringRange
いつ新しいファイルを開始するかを検出します。ページ。これはうまく機能しますが、テキストがどこで終了したかをどのように確認できますか? たとえば、テキストが最終ページの途中で止まる可能性があり、その下にいくつかの画像を描きたいとします。テキストが終了した位置を取得するにはどうすればよいですか?
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)notesAttrString);
do {
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, currentRange, path, NULL);
if( frame ) {
CTFrameDraw(frame, context);
if( currentRange.location < CFAttributedStringGetLength((CFAttributedStringRef)notesAttrString) ) {
UIGraphicsBeginPDFPage();
} else {
complete = YES;
}
}
} while( !complete );
(上記のコードはプロセスを説明するために省略されており、完全ではありません)