Извлечение и сохранение вложения
Получение вложений из PDF-документа
С помощью Aspose.PDF можно получить все вложения из PDF-документа. Это полезно, когда вы хотите сохранить документы отдельно от PDF или если вам нужно удалить вложения из PDF.
Следующие фрагменты кода показывают, как получить все вложения из PDF-документа.
public static void GetAttachmentsFromPDFDocument() {
// Открыть документ
Document pdfDocument = new Document(_dataDir+"input.pdf");
// Получить конкретный встроенный файл
FileSpecification fileSpecification = pdfDocument.getEmbeddedFiles().get_Item(1);
// Получить свойства файла
System.out.printf("Имя: - " + fileSpecification.getName());
System.out.printf("\nОписание: - " + fileSpecification.getDescription());
System.out.printf("\nТип Mime: - " + fileSpecification.getMIMEType());
// Получить вложение из PDF-файла
try {
InputStream input = fileSpecification.getContents();
File file = new File(fileSpecification.getName());
// Создать путь для файла из pdf
file.getParentFile().mkdirs();
// Создать и извлечь файл из pdf
java.io.FileOutputStream output = new java.io.FileOutputStream(fileSpecification.getName(), true);
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = input.read(buffer)))
output.write(buffer, 0, n);
// Закрыть объект InputStream
input.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
// Закрыть объект Document
pdfDocument.dispose();
}
Получить информацию о вложении
Как упоминалось в разделе Получение вложений из PDF-документа, информация о вложении содержится в объекте FileSpecification, собранном с другими вложениями в коллекции EmbeddedFiles объекта Document.
Объект FileSpecification предоставляет методы, которые получают информацию о вложении, например:
- getName() – получает имя файла.
- getDescription() – получает описание файла.
- getMIMEType() – получает MIME-тип файла.
- getParams() – информация о параметрах файла, например, CheckSum, CreationDate, ModDate и Size.
Чтобы получить эти параметры, сначала убедитесь, что метод getParams() не возвращает null.
Либо переберите все вложения в коллекции EmbeddedFiles, используя цикл for, либо получите отдельное вложение, указав его индексное значение. Следующий фрагмент кода показывает, как получить информацию о конкретном вложении.
public static void GetAttachmentInformation() {
// Открыть документ
Document pdfDocument = new Document(_dataDir+"input.pdf");
// Получить конкретный встроенный файл
FileSpecification fileSpecification = pdfDocument.getEmbeddedFiles().get_Item(1);
// Получить свойства файла
System.out.println("Имя:-" + fileSpecification.getName());
System.out.println("Описание:- " + fileSpecification.getDescription());
System.out.println("Mime Type:-" + fileSpecification.getMIMEType());
// Проверить, содержит ли объект параметров параметры
if (fileSpecification.getParams() != null) {
System.out.println("Контрольная сумма:- " + fileSpecification.getParams().getCheckSum());
System.out.println("Дата создания:- " + fileSpecification.getParams().getCreationDate());
System.out.println("Дата изменения:- " + fileSpecification.getParams().getModDate());
System.out.println("Размер:- " + fileSpecification.getParams().getSize());
}