ios - 如何在 PDFView 中 swift 适应来自 UIImage 的 PDF?

标签 ios swift pdfkit pdfview

我有一个应用程序可以捕获图像并将其转换为 pdf。然后它显示在 PDFView 中。但是,PDF 不适合我的 PDFView 的尺寸。如何缩放 pdf 以适应 PDFView?

当从 imagePickerController 中选择图像时,将执行以下函数:

// OUTLETS
@IBOutlet weak var myPDFView: PDFView!


 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    print("image selected ...")
    // Get picked image info dictionary
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage

    // Add captured and selected image to your Photo Library
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

    // Create PDFDocument object and display in PDFView
    let document = createPDFDataFromImage(image: image)

    myPDFView.document = document
    myPDFView.scaleFactorForSizeToFit

    // Dimiss imagePicker
    dismiss(animated: true, completion: nil)

}


  func createPDFDataFromImage(image: UIImage) -> PDFDocument{

    let document = PDFDocument.init()
    let imagePDF = PDFPage.init(image: image)

    document.insert(imagePDF!, at: 0)
    return document
}

最佳答案

你可以设置autoScales为真

这是我的代码

pdfView.document = createPDF(image: #imageLiteral(resourceName: "Image-1"))

pdfView.minScaleFactor = 0.1
pdfView.maxScaleFactor = 5

pdfView.autoScales = true
pdfView.displayMode = .singlePageContinuous
pdfView.displayDirection = .vertical

然后像这样从图像创建一个 PDFPage:

func createPDF(image: UIImage) -> PDFDocument {
    let document = PDFDocument()

    guard let cgImage = image.cgImage else { return document }

    let image = UIImage(cgImage: cgImage, scale: image.scale, orientation: .downMirrored)

    guard let imagePDF = PDFPage(image: image) else { return document }

    document.insert(imagePDF, at: document.pageCount)

    return document
}

关于ios - 如何在 PDFView 中 swift 适应来自 UIImage 的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48870046/

相关文章:

iphone - 如何在结构中使用 __unsafe_unretained

iOS 应用程序需要设计一种灵活而优雅的方式来向应用程序内不同位置的用户弹出惊喜礼物消息

iOS Swift Push Segue Catch 触发后退按钮功能

swift - UITableView 或 StackView

css - Rails4 + PDFKit + 字体 + Heroku 不工作

ios - 使用蒙版裁剪图像

ios - UICollectionView visibleCells 在滚动前返回 0

ios - 在 Swift 3.0 中从 Firebase 获取数据

ruby-on-rails - 我在哪里可以找到 pdfkit 或 wkhtmltopdf 日志?

ios - 使用 pdfkit 显示 pdf