Geoffrey Chen
Geoffrey Chen

Reputation: 103

QLThumbnailGenerator cannot generate thumbnail when the pdf file is large

let generator = QLThumbnailGenerator.shared
Task {
    do {
        let generated = try await generator.generateBestRepresentation(for: request)
        print(generated)   // <----- cannot get this when the file is large.
    }
    catch let err {
        print(err)
    }
}

I'm trying to create thumbnails for some pdf files. Everything works perfectly with small pdf files. But I cannot get the thumbnail for the large pdfs (e.g., > 10M).

Is there any file size limitation of QLThumbnailGenerator?

Thanks!

Upvotes: 1

Views: 806

Answers (1)

matt
matt

Reputation: 535988

I think this is a limitation of the async version of generateBestRepresentation. Try instead calling

generateRepresentations(
    for request: QLThumbnailGenerator.Request, 
    update updateHandler: ((QLThumbnailRepresentation?, QLThumbnailRepresentation.RepresentationType, Error?) -> Void)? = nil
)

This will make multiple callbacks to updateHandler and you can keep checking the representation type until you get the .thumbnail, or you can just stop when you get the first .lowQualityThumbnail if you like.

Upvotes: 2

Related Questions