前提・実現したいこと
swiftuiでPDFkitのPDFAnnotationでテキストを追加してwriteで上書きしたい
発生している問題・エラーメッセージ
PDFデータが上書きがiPad(8th generation)のシュミレータでは実行されますが
実機(iPad Pro 9.7インチ)では上書きされません。
該当のソースコード
swiftui
func makeUIView(context: UIViewRepresentableContext<PDFViewer>) -> PDFViewer.UIViewType {
// 画面サイズに合わす
pdfInfo.pdfView.autoScales = true
// 単一ページのみ表示(これを入れるとページめくりができない)
// pdfView.displayMode = .singlePage
//pageViewControllerを利用して表示(displayModeは無視される)
pdfInfo.pdfView.usePageViewController(true)
//スクロール方向を水平方向へ
pdfInfo.pdfView.displayDirection = .horizontal
//スクロール方向を垂直方向へ
// pdfInfo.pdfView.displayDirection = .vertical
//余白を入れる
// pdfInfo.pdfView.displaysPageBreaks = true
pdfInfo.pdfView.document = PDFDocument(url: url) let page_test = pdfInfo.pdfView.document?.page(at: 0) // 入力値を出力 var rect = CGRect(x: 58, y: 733, width: 300, height: 50) var text = PDFAnnotation(bounds: rect, forType: .freeText, withProperties: nil) text.color = .clear text.font = UIFont.systemFont(ofSize: 10) text.fontColor = .black text.contents = "test" page_test?.addAnnotation(text) let path = Bundle.main.url(forResource: "sample_input", withExtension: "pdf") page_test?.document?.write(to: path!) return pdfInfo.pdfView
}
試したこと
https://stackoverflow.com/questions/53831075/ios-pdfkit-will-not-write
上記を参考に変更を行ってみましたが、シミュレータでも上書きがされなくなったため元の状態(記載のコード)に戻しました。
データを「表示確認用サンプル PDF - Adobe Help Center」に変更してみても改善されなかったのでPDF側の問題ではないように思われます。
修正方法ご存知の方がおられましたらお知恵をお貸りできましたら幸いです。
補足情報(FW/ツールのバージョンなど)
Xcode version 12.3
何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー