0

itext を使用して JavaScript を PDF に追加し、後で別の PDF とマージしようとしています。しかし、最終的にマージされた pdf には JavaScript が含まれていません。PDFが別のPDFとマージされていない場合、JavaScriptは正常に機能しています。

コードのマージ: FileOutputStream sectionR = new FileOutputStream(RESULT);

PdfCopyFields copier = new PdfCopyFields(sectionR);

 for (String curInPath : listFile) {

       PdfReader reader = new PdfReader(curInPath);
        copier.addDocument(reader);

      }

   copier.close();

結果のマージされたpdfにJSを追加しようとしましたが、取得していません。編集不可だと思います。

以下は、まだマージされていない JS を pdf に追加するコードです。

FileOutputStream section1Pdf = new FileOutputStream("newPDFSection");

PdfReader readerSection1 = new PdfReader("Existing PDF - Section 1");

PdfStamper stamperSection1 = new PdfStamper(readerSection1,section1Pdf);

stamperSection1.addJavaScript(
"var nameField = this.getField('txtOwnerCity');" +              "nameField.setAction('Keystroke'," +"'forceUpperCase()');" +
      "" +"function forceUpperCase(){" +
"if(!event.willCommit)event.change = " +
"event.change.toUpperCase();" +
"}");

結果のマージされた pdf に JS を追加しようとすると、もう編集できないと言うことはできません。

これが私が追加しようとしている方法です

FileOutputStream sectionR = new FileOutputStream(RESULT);

            PdfCopyFields copier = new PdfCopyFields(sectionR);


            for (String curInPath : listFile) {

                PdfReader reader = new PdfReader(curInPath);
                copier.addDocument(reader);             
}
copier.close();

PdfReader readersectionResult = new PdfReader("result.pdf");

PdfStamper stamper = new PdfStamper(readersectionResult, new FileOutputStream("newResult.pdf"));

stamper.addJavaScript(some JS);

私が得ているエラーは「警告: ヘッダーを設定できません。応答は既にコミットされています。

私がやろうとしているのは、結果のpdfのpdfstamperを取得して新しいJSを追加することだけです。

フォームに入力された値を編集しようとすると、編集不可と表示されます。

アクロフィールド acro= スタンパー .getAcroFields();

acro.setField("txtOfficerName"+officerChar,officerSO.getFullName());

4

0 に答える 0