marinofaggiana 5 жил өмнө
parent
commit
7a353b5c8b

+ 20 - 0
iOSClient/Utility/NCUtility.swift

@@ -25,6 +25,7 @@ import Foundation
 import SVGKit
 import KTVHTTPCache
 import NCCommunication
+import PDFKit
 
 class NCUtility: NSObject {
     @objc static let sharedInstance: NCUtility = {
@@ -507,5 +508,24 @@ class NCUtility: NSObject {
         let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
         return NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName))
     }
+    
+    @objc func pdfThumbnail(url: URL, width: CGFloat = 240) -> UIImage? {
+        if #available(iOS 11.0, *) {
+            guard let data = try? Data(contentsOf: url), let page = PDFDocument(data: data)?.page(at: 0) else {
+                return nil
+            }
+
+            let pageSize = page.bounds(for: .mediaBox)
+            let pdfScale = width / pageSize.width
+
+            // Apply if you're displaying the thumbnail on screen
+            let scale = UIScreen.main.scale * pdfScale
+            let screenSize = CGSize(width: pageSize.width * scale, height: pageSize.height * scale)
+
+            return page.thumbnail(of: screenSize, for: .mediaBox)
+        } else {
+            return nil
+        }
+    }
 }