본문 바로가기
iOS/iOS

PDFView

by 패쓰킴 2022. 4. 11.
728x90

PDF 틀 만들기

PDFView는 PDFKit을 이용해 만들어 지기 때문에 storyboard에서 만들때는 VIew를 가져와서 class를 PDFView라고 따로 명시 해주어야 한다.

그래서 나는 storyboard에 View를 올리고 이 View를 PDFVIew의 superView로 만들어 진행하였다.

 

PDFView 구현

1. PDFKit을 import 하고

import PDFKit

 

2. PDFView의 superVIew를 연결하고

class PDFViewController: UIViewController {
    @IBOutlet weak var supView: UIView!

 

3. PDFView를 선언해준다.

var pdfView: PDFView!

 

4. PDFView를 초기화 해준 후 supView에 넣어준다.

override func viewDidLoad() {
   super.viewDidLoad()

   self.pdfView = PDFView()
   self.supView.addSubview(pdfView)

 

5. PDFView의 사이즈는 superView에 맞추면 되기 떄문에

pdfView.frame = supView.bounds

 

PDFView 세팅

URL에서 pdf 문서를 가져오는 경우만 정리 하려 한다.

1. PDFDocument를 이용하여 pdf를 생성한다.

let doc = PDFDocument(url: URL(string: "url")!)

 

2. pdfView에 보여줄 pdf를 세팅해준다.

pdfView.document = doc

 

3. pdfView 옵션을 세팅해준다.

// 하나의 페이지를 연속적으로 보여준다.
pdfView.displayMode = .singlePageContinuous
// 페이지 구분을 좁혀준다.
pdfView.displaysPageBreaks = false
// 페이지 방향 설정
pdfView.displayDirection = .vertical
// 페이지 확대, 축소 값 설정
pdfView.maxScaleFactor = 10.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit

- displayMode 

    singlePage: PDF가 여러 페이지가 있더라도 하나의 페이지만 보여진다.

    singlePageContinous: 가장 일반적인 형태로 문서가 단일페이지로 연속적으로 보여진다.

    twoUp: 두개의 페이지만 옆(가로)으로 보여진다.

    twoUpContinuous: 두 줄 씩 전체 페이지가 보여진다.

참고:

https://developer.apple.com/documentation/pdfkit/pdfdisplaymode

 

4. 처음 PDF가 로드되어 보여질 때 스케일을 지정할 수 있다. (선택사항)

// 첫페이지에 보여지는 사각 영역을 이용하여 pdfView의 scale을 지정한다.
if let document = pdfView.document, let page = document.page(at: 0) {
let pageBounds = page.bounds(for: pdfView.displayBox)
   pdfView.scaleFactor = (pdfView.bounds.width * 1.5) / pageBounds.width
}

 

참고: 

https://developer.apple.com/documentation/pdfkit/pdfpage/1504213-bounds

https://developer.apple.com/documentation/pdfkit/pdfdisplaybox

잘 이해가 안갔는데 오히려 MS문서를 보고 이해가 되었다.

https://docs.microsoft.com/ko-kr/dotnet/api/pdfkit.pdfview.displaybox?view=xamarin-ios-sdk-12 

https://docs.microsoft.com/ko-kr/dotnet/api/pdfkit.pdfdisplaybox?view=xamarin-ios-sdk-12 

 

 

이렇게 실행하면 PDF가 보인다~

728x90

'iOS > iOS' 카테고리의 다른 글

Local DB 결정 시 참고 사이트  (0) 2022.04.22
UILabel에 이미지 넣기  (0) 2022.04.20
image scrolling(paging) & zoom  (0) 2022.04.04
Firebase DynamicLinks  (0) 2022.04.01
Delegate 사용  (0) 2022.03.28

댓글