Я использую PDFView из PDFKit (быстрый язык программирования, macOS), чтобы отобразить некоторые документы PDF. Я хотел бы отображать несколько страниц одного и того же PDF-файла. Решение состоит в том, чтобы создать несколько PDFView из одного и того же PDF-документа, но таким образом мне приходится выделять несколько раз одну и ту же память, и это может быть проблемой для PDF-изображений, богатых изображениями. Есть ли какой-либо быстрый способ отображения разных страниц одного и того же PDF-файла, скажем, 4/8 разных просмотров?Несколько страниц просмотра одного и того же PDF
EDIT: драгоценные предложения по @danielv привел к этому коду
import Cocoa
import Quartz
class PDFPageView: NSView {
var pdfPage: PDFPage?
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
if(pdfPage != nil) {
let context = NSGraphicsContext.current()
let pdfBox = PDFDisplayBox.mediaBox
let pdfBounds = pdfPage?.bounds(for: pdfBox)
let scaleX = visibleRect.width/(pdfBounds?.width)!
let scaleY = visibleRect.height/(pdfBounds?.height)!
let scale = min(scaleX,scaleY)
context?.cgContext.scaleBy(x: scale, y: scale)
pdfPage?.draw(with: pdfBox, to: (context?.cgContext)!)
}
}
}
Что вы подразумеваете под «несколькими страницами одного и того же pdf»? PDFView уже отображает несколько страниц с прокруткой, вы хотите отображать их по-другому? – danielv
@ danielv в конечном итоге то, что я хотел бы сделать, это иметь «тройную одиночную страницу», поэтому имея три PDFView о том же PDF-файле, я не хочу дублировать используемую память. – Nisba