-2

注釈を削除/追加した後、ファイルをディスクに保存します (これは、注釈を適切に保存するために必要ですか?)。次に、ドキュメントを a のUIActivityViewController中に入れUIActivityItemProviderます。

注釈は、印刷プレビュー、PDF Expert、Firefox、Gmail ブラウザー、プレビューなどで表示できます。ただし、Acrobat (および .doc へのエクスポート) では表示できません。

Acrobat Reader ビルド 19.21.20061.361316 を使用。Xcode 11.3 を使用

編集中のPDFまたはこちら

注釈の例:

// Open PDF etc
if annotation.fieldName == "form1[0].Page1[0].WE_FACTR[0]" {
     annotation.setValue("30.0", forAnnotationKey: .widgetValue)
     page.removeAnnotation(annotation)
     page.addAnnotation(annotation)
}
// save PDF to file
// PDF File is in the UIACtivityViewController

PDFKit for Adob​​e Reader で注釈が欠落している場合の回避策があるかどうか疑問に思っていました。

PSPDFKit の@steipeteに尋ねたところ、これが人々が彼のフレームワークを使用する理由であると彼は言いました。彼が提案したドロップイン交換呼び出しPDFXKitがあります。

PSPDFKit でも動作しませんでした。XFA フォームはサポートされていないようです。

4

2 に答える 2

1

PDF にXFA/AcroForm ハイブリッド フォーム定義があります。つまり、フォームは PDF で 2 回定義されます。1 回は AcroForm オブジェクト (「ネイティブ」PDF フォーム形式) を使用し、1 回は XFA XML ストリームを使用します。

PDF が XFA をサポートする PDF プロセッサ (最も重要なのは、Adobe ビューアーと他のほとんどのプロセッサを意味する) で開かれている場合、XFA フォーム定義が処理され (表示など)、通常の PDF コンテンツはすべて無視され、AcroForm フォーム定義の値のみが表示されます。 XFA フォームの値に一致するように更新されます。

PDF が XFA をサポートしていないPDF プロセッサ(基本的に Adob​​e 製品を除くすべて) で開かれている場合、Acroform フォーム定義を含む通常の PDF コンテンツが処理されます。

これはあなたの観察を説明しています

注釈は、印刷プレビュー、PDF Expert、Firefox、Gmail ブラウザー、プレビューなどで表示できます。ただし、Acrobat (および .doc へのエクスポート) では表示できません。

(私が今見ているように、あなたは自分で XFA について知り、そこを指すコメントを質問に編集しました。)

この状況での通常の解決策は、XFA フォーム定義を削除することです。削除すると、すべてのプロセッサ (Adobe ビューアーも) は、AcroForm フォーム定義を含む通常の PDF コンテンツのみを処理します。

これを行うには、PDFのAcroFormディクショナリでXFAエントリを削除するだけです。

使用権の署名が (あなたのもののように) ドキュメントに存在する場合、その削除はそれを無効にします。このような場合、カタログのPermsエントリも削除する必要があります。

残念ながら、私はあなたのライブラリを知らないので、これを実装するコードを示すことができません。

于 2020-01-27T11:29:03.900 に答える