如何在PDFView中显示单页pdf文档,以使文档居中并完整显示?

时间:2018-09-21 10:11:02

标签: ios swift pdfview ios-pdfkit

我有一个应用程序,可以拍摄文档照片,然后在新的UIViewController中以PDFView的形式显示为pdf。我遇到的问题是,在显示pdf文档时,默认情况下会放大某些内容,而PDFView不会显示文档的完整轮廓。我该怎么做?

class ShowPDFViewController: UIViewController{

@IBOutlet weak var pdfPreview: PDFView!
var pdfDocument: PDFDocument!


    override func viewDidLoad() {
        super.viewDidLoad()

        // PRESENT PDF DOCUMENT JUST CREATED
        pdfPreview.document = pdfDocument
        pdfPreview.autoScales = true

    }
}

这是当前默认显示pdf文档的方式-经常缩放:

enter image description here

这就是我希望默认显示的文档的方式-文档的完整轮廓请参见:

enter image description here

3 个答案:

答案 0 :(得分:2)

我通过以下方式从代码中创建视图,并且可以正常工作(左侧和右侧对齐到超级视图的左侧和右侧,高度缩放到适合的大小)

var pdfView = PDFView(frame: view.frame)
pdfView.document = PDFDocument(url: Bundle.main.url(forResource: "doc"
    , withExtension: "pdf")!)

pdfView.displayMode = .singlePage
pdfView.autoScales = true

view.addSubview(pdfView)

答案 1 :(得分:0)

我有个主意。 您可以创建ScrollView,将PDFView添加到其中。将它们交给控制器。 您可以根据需要更改ScrollView.contentOffset

答案 2 :(得分:0)

修复 pdfView.displayMode = .singlePageContinuous

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        DispatchQueue.main.async {
            self.pdfView.subviews.forEach {
                guard let scrollView = ($0 as? UIScrollView) else { return }
                scrollView.setContentOffset(.zero, animated: false)
            }
        }

    }