如何在 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 转换为字节数组