2017-11-24 15 views
0

iOS에서 PDFKit을 사용하여 텍스트를 강조 표시합니다 (PDF 파일). PDFAnnotation을 만들어 선택한 텍스트 영역에 추가하면됩니다. 선택한 영역을 정확하게 강조하고 싶지만 항상 아래 그림처럼 전체 선을 덮습니다. 선택한 영역에 대해서만 주석을 어떻게 만들 수 있습니까 ??사과에 강조 표시가 잘못되었습니다. PDFKit

내 코드 :

 let highlight = PDFAnnotation(bounds: selectionText.bounds(for: page), forType: PDFAnnotationSubtype.highlight, withProperties: nil) 
     highlight.color = highlightColor 
     page.addAnnotation(highlight) 

Selected text

Highlighted text

답변

2

PDFSelectionbounds(forPage:) 방법은 전체 선택 영역을 만족시키기 위해 하나 개의 사각형을 반환합니다. 귀하의 경우에는 최선의 해결책이 아닙니까?

selectionsByLine()으로 시도해보고 PDF에서 선택한 모든 줄을 나타내는 모든 rect마다 개별 주석을 추가하십시오. 예 :

let selections = pdfView.currentSelection?.selectionsByLine() 
    // Simple scenario, assuming your pdf is single-page. 
    guard let page = selections?.first?.pages.first else { return } 

    selections?.forEach({ selection in 
     let highlight = PDFAnnotation(bounds: selection.bounds(for: page), forType: .highlight, withProperties: nil) 
     highlight.endLineStyle = .square 
     highlight.color = UIColor.orange.withAlphaComponent(0.5) 

     page.addAnnotation(highlight) 
    })