Java 带有iText的PdfCopy和表单值:表单值不可见

Java 带有iText的PdfCopy和表单值:表单值不可见,java,itext,Java,Itext,iText的第6章介绍了如何使用PdfSmartCopy/PdfCopy复制页面: public void addDataSheets(PdfCopy copy) throws SQLException, IOException, DocumentException { // Create a database connection DatabaseConnection connection = new HsqldbConnection("film

iText的第6章介绍了如何使用PdfSmartCopy/PdfCopy复制页面:

public void addDataSheets(PdfCopy copy)
        throws SQLException, IOException, DocumentException {
        // Create a database connection
        DatabaseConnection connection = new HsqldbConnection("filmfestival");
        List<Movie> movies = PojoFactory.getMovies(connection);
        PdfReader reader;
        PdfStamper stamper;
        ByteArrayOutputStream baos;
        // Loop over all the movies and fill out the data sheet
        for (Movie movie : movies) {
            reader = new PdfReader(DATASHEET);
            baos = new ByteArrayOutputStream();
            stamper = new PdfStamper(reader, baos);
            fill(stamper.getAcroFields(), movie);
            stamper.setFormFlattening(true);
            stamper.close();

            reader = new PdfReader(baos.toByteArray());
            copy.addPage(copy.getImportedPage(reader, 1));
        }
        // Close the database connection
        connection.close();
    }

有没有一种方法可以使用当前的API,而不用在pdf中使用反射或重新打开?

请查看iText网站上更新的示例。您将发现添加了以下行:

fields.setGenerateAppearances(true);

iText过去常常忽略此标志并始终创建外观,即使PDF明确表示不需要创建外观。较新版本考虑了标志的价值,不会创建外观,以防PDF表示不需要外观(这可能是您的PDF中的情况)。

请查看iText网站上的更新示例。您将发现添加了以下行:

fields.setGenerateAppearances(true);

iText过去常常忽略此标志并始终创建外观,即使PDF明确表示不需要创建外观。较新版本考虑了标志的价值,不会创建外观,以防PDF表示不需要外观(这可能是您的PDF中的情况)。

请查看iText网站上的更新示例。您将发现添加了以下行:

fields.setGenerateAppearances(true);

iText过去常常忽略此标志并始终创建外观,即使PDF明确表示不需要创建外观。较新版本考虑了标志的价值,不会创建外观,以防PDF表示不需要外观(这可能是您的PDF中的情况)。

请查看iText网站上的更新示例。您将发现添加了以下行:

fields.setGenerateAppearances(true);
iText过去常常忽略此标志并始终创建外观,即使PDF明确表示不需要创建外观。较新的版本考虑了标志的值,并且不创建外观,以防PDF表示不需要外观(在您的PDF中可能就是这种情况)