Java 带有iText的PdfCopy和表单值:表单值不可见
iText的第6章介绍了如何使用PdfSmartCopy/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
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中可能就是这种情况)