

現在、swiftuiでPDFデータを表示するアプリを作成しているのですが、  
表示したPDFにテキストを追記して印刷することができません。

PDFデータにPDFAnnotationでテキストを追加し、.document?.write(to: path!)で書き出ししていおり、iPad(8th
generation)のシュミレータでは  
テキストが追記された状態で印刷されるのですが、実機で行うとテキストが追記されない状態です。

PDFデータを「表示確認用サンプル PDF - Adobe Help
Center」に変更してみても改善されなかったのでPDF側の問題ではないように思われます。

なにか解決策や修正方法などご存知の方がおられましたらお知恵をお貸しいただけますと幸いです。

必要な情報などございましたらお手数ですがご連絡のほどお願いいたします。

下記が使用しているコードの該当部分です。

[code]

    struct PDFViewer: UIViewRepresentable {
    @ObservedObject var pdfInfo: PDFInfo
    let url: URL = Bundle.main.url(forResource: "sample", withExtension: "pdf")!
    
    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
    }
    
[/code]


CC BY-SA 4.0
2021-03-28T11:12:26.233
74946
2021-03-29T00:09:22.527
44543
question
swiftui
swiftuiでPDFkitのPDFAnnotationでテキストを追加してwriteで上書きしたい


この行でリソース用URLを指定しています。

[code]

        let path = Bundle.main.url(forResource: "sample_input", withExtension: "pdf")
    
[/code]

リソース用URLは(実機では)書き込み禁止です。アプリから書き込み可能な場所を指すURLを作成して書き込んでみてください。


CC BY-SA 4.0
2021-03-28T11:38:08.473
74947
2021-03-28T11:38:08.473
13972
74946
answer