Пока вы добавляете только вложения, стандарт PDF не позволяет предписывать порядок сортировки, который программа просмотра PDF использует при отображении вложений.
Если, с другой стороны, вы делаете PDF Переносимая коллекция (он же Портфолио), вы можете назначить схему (т.е. поля в подробном списке) и порядок сортировки (по одному или комбинации этих полей).
Вы можетедовольно легко превратить ваш PDF с вложениями в переносимую коллекцию с именем и датой изменения, отсортированными по последним, например:
try ( PdfReader reader = new PdfReader(...);
PdfWriter writer = new PdfWriter(...);
PdfDocument document = new PdfDocument(reader, writer)) {
PdfCollection collection = new PdfCollection();
document.getCatalog().setCollection(collection);
PdfCollectionSchema schema = new PdfCollectionSchema();
PdfCollectionField field = new PdfCollectionField("File Name", PdfCollectionField.FILENAME);
field.setOrder(0);
schema.addField("Name", field);
field = new PdfCollectionField("Modification Date", PdfCollectionField.MODDATE);
field.setOrder(1);
schema.addField("Modified", field);
collection.setSchema(schema);
PdfCollectionSort sort = new PdfCollectionSort("Modified");
collection.setSort(sort);
}
( SortAttachments test testAttachLikeGeologistedWithCollection
)
Вы даже можете определить пользовательское поле, используя тип PdfCollectionField.TEXT
, PdfCollectionField.DATE
или PdfCollectionField.NUMBER
, по которому производится сортировка.Вы можете установить значение такого настраиваемого поля для PdfFileSpec
с помощью метода setCollectionItem
.