Как разместить PDF из UIImage в 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
}
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
}