AFP в Java Eclipse
Я искал несколько дней, чтобы найти способ прочитать файл Advanced Function Presentation, чтобы он выводил на консоль некоторую информацию о файле (например, сколько документов, сколько страниц в документе...),
Я успешно прочитал номер байта файла AFP.
public static void main(String[] args) {
String filename = "xxx.afp";
try {
DataInputStream in = new DataInputStream(
new BufferedInputStream(
new FileInputStream(filename))))
System.out.println(in.read());
}
}
Заранее спасибо!
2 ответа
Вы смотрели на AFP Renderer?
Если это не делает то, что вы хотите, то я боюсь, что вам нужно будет прочитать спецификации, которые вы можете получить, следуя этим инструкциям.
Объекты в файле AFP помечены так называемыми триплетами. Вы можете думать о них как о 3-х буквенных мнемониках. Обычно они имеют разделители "начало" и "конец" для соответствующих объектов. Триплеты вводятся последовательностью байтов, привлекающей внимание, 0x5A, если я правильно помню (для проверки).
Таким образом, для подсчета страниц вы должны пройти через свой DataInputStream и посчитать вхождения триплета "начальная страница". Если вы хотите быть очень точным, попробуйте сопоставить их с триплетом "конечная страница". Специфичные для триплета шестнадцатеричные значения проверяются в спецификации.
Доступны также коммерческие SDK.