如何在 swift 中将 UIImage 中的 PDF 放入 PDFView 中?

Posted

技术标签:

【中文标题】如何在 swift 中将 UIImage 中的 PDF 放入 PDFView 中?【英文标题】:How to fit a PDF from UIImage in PDFView in swift? 【发布时间】:2018-02-19 16:15:12 【问题描述】:

我有一个应用程序可以捕获图像并将其转换为 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 @zombie 请你详细说明/ 【参考方案1】:

您可以将autoScales 设置为true

这是我的代码

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

【讨论】:

@johnDoe 因为您需要旋转图像。检查更新的答案 @zombie 你有可以分享的示例应用吗?

以上是关于如何在 swift 中将 UIImage 中的 PDF 放入 PDFView 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 4 中将 UIImage 转换为字节数组

如何在Swift 4中将UIImage转换为字节数组

如何使用 CIFilter 在 Swift 中将 UIImage 转换为灰度?

Swift中的像素数组到UIImage

在 Swift 中将字节数组转换为 UIImage

在 Swift 中将 ui Image 制作成完美的圆圈