Размещение форм в PDF с помощью Java

Aspose.PDF for Java поддерживает как создание кнопок отправки на основе фасада, так и на основе DOM.

Добавление кнопки отправки с FormEditor

  1. Создайте фасад FormEditor для исходного PDF‑документа.
  2. Добавьте настроенную кнопку отправки через фасад FormEditor.
  3. Сохраните обновлённый PDF‑документ.
public static void addSubmitButton(Path inputFile, Path outputFile) {
    FormEditor editor = new FormEditor();
    editor.bindPdf(inputFile.toString());
    try {
        editor.addSubmitBtn("submitbutton", 1, "Submit", "http://localhost/testing/show",
                100, 450, 150, 475);
        editor.save(outputFile.toString());
    } finally {
        editor.close();
    }
}

Добавление действия отправки вручную

  1. Откройте исходный PDF в объекте Document.
  2. Создайте SubmitFormAction и URL FileSpecification.
  3. Создайте ButtonField на нужной странице Page и назначьте действие отправки.
  4. Сохраните обновлённый PDF Document.
public static void addSubmitAction(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        SubmitFormAction submitAction = new SubmitFormAction();
        submitAction.setUrl(new FileSpecification("http://localhost:3000/submit"));
        submitAction.setFlags(SubmitFormAction.EXPORT_FORMAT | SubmitFormAction.SUBMIT_COORDINATES);

        ButtonField submitButton = new ButtonField(document.getPages().get_Item(1), new Rectangle(10, 10, 100, 40));
        submitButton.setPartialName("SubmitButton");
        submitButton.setValue("Submit");
        submitButton.getPdfActions().add(submitAction);

        document.getForm().add(submitButton, 1);
        document.save(outputFile.toString());
    }
}