Merge commit '7621e2f8dec938cf48181c8b10afc9b01f444e68' into beta

This commit is contained in:
Ilya Laktyushin
2025-12-06 02:17:48 +04:00
commit 8344b97e03
28070 changed files with 7995182 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
swift_library(
name = "Pdf",
module_name = "Pdf",
srcs = glob([
"Sources/**/*.swift",
]),
copts = [
"-warnings-as-errors",
],
deps = [
"//submodules/Display:Display",
],
visibility = [
"//visibility:public",
],
)
+33
View File
@@ -0,0 +1,33 @@
import Foundation
import UIKit
import Display
public func generatePdfPreviewImage(url: URL, size: CGSize) -> UIImage? {
guard let data = try? Data(contentsOf: url, options: .mappedIfSafe) else { return nil }
return generatePdfPreviewImage(data: data, size: size)
}
public func generatePdfPreviewImage(data: Data, size: CGSize) -> UIImage? {
guard let provider = CGDataProvider(data: data as CFData) else { return nil }
guard let document = CGPDFDocument(provider) else { return nil }
guard let firstPage = document.page(at: 1) else { return nil }
guard let context = DrawingContext(size: size) else {
return nil
}
context.withContext { c in
var pageRect = firstPage.getBoxRect(.mediaBox)
let pdfScale = 320.0 / pageRect.size.width
pageRect.size = CGSize(width: pageRect.size.width * pdfScale, height: pageRect.size.height * pdfScale)
pageRect.origin = CGPoint.zero
c.setFillColor(UIColor.white.cgColor)
c.fill(pageRect)
c.translateBy(x: 0.0, y: pageRect.size.height)
c.scaleBy(x: 1.0, y: -1.0)
c.concatenate(firstPage.getDrawingTransform(.mediaBox, rect: pageRect, rotate: 0, preserveAspectRatio: true))
c.drawPDFPage(firstPage)
}
return context.generateImage()
}