0

現在、iTextSharp ライブラリを使用してデータベースから事前入力されたいくつかのフィールドを持つフォーム テンプレートがあります。ユーザーは残りのフィールドに入力し、入力したフォームを保存します。次に、データを抽出してデータベースに入れます。

現在、私は PDF を作成することができ、それらは事前にうまく入力されています。コンピューターの Adob​​e Reader で編集して保存することもできます。ただし、他の誰かが同じファイルを開くと、フォームの保存が許可されていないことがわかりました。

Adobe Reader を使用しているすべてのユーザーがフォームを保存できるようにするには、どうすればよいですか? PDFを作成するために必要なコードは次のとおりです。

Dim pdfReader As PdfReader = New PdfReader(formPath)
pdfReader.RemoveUsageRights()
Dim pdfStamper As PdfStamper = New PdfStamper(pdfReader, New FileStream(outputPath, FileMode.Create))
Dim pdfFormFields As AcroFields = pdfStamper.AcroFields
Dim xfdfReader As XfdfReader = New XfdfReader(xfdfPath)

pdfFormFields.SetFields(xfdfReader)
pdfStamper.Close()

以前は、フォームを Reader に保存できないという問題がありました。そのため、次の行を追加しました。

pdfReader.RemoveUsageRights()

これで作成したPDFを編集できるようになりすべて解決したと思いました。しかし、他の誰もできません。

4

2 に答える 2

1

これをコードで使用するだけです。作成するときは、PdfStamper次のような追加のパラメーターを追加する必要があります。

PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(
    newPath, FileMode.CreateNew, FileAccess.Write), '\0', true);

これでうまくいきます。

于 2013-05-24T09:59:00.807 に答える
1

サンプルReaderEnabledForm.csを参照してください。Reader Enabled フォームに記入するさまざまな方法について説明します。

  1. リーダー対応を壊す
  2. リーダー対応の削除
  3. リーダー対応の保持

1 と 2 は既に試しましたが、PdfStamper インスタンスの作成時に追加のパラメーターを追加する必要がある 3 を求めています。

new PdfStamper(pdfReader, New FileStream(outputPath, FileMode.Create), '\0', true);
于 2013-04-11T08:41:11.773 に答える