1. Продукти
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS for Java

Створюйте та маніпулюйте PDF‑документами з Java — з анотаціями, полями форм, маніпуляцією сторінками та відповідністю PDF/A. Ліцензія MIT.

Безкоштовна бібліотека Java з ліцензією MIT для створення та маніпулювання PDF-файлами.

Aspose.PDF FOSS для Java — це бібліотека Java з ліцензією MIT для створення та роботи з PDF‑документами. Вона надає всебічний клас Document як центральну точку входу, а також повне охоплення анотацій, інтерактивних полів форми, маніпуляцій зі сторінками, метаданих та перевірки відповідності PDF/A.

Бібліотека надає 527 класів, що охоплюють повну специфікацію PDF: структуру документа через Document, Page та PageCollection; анотації через ієрархію Annotation (включаючи WidgetAnnotation, FreeTextAnnotation та HighlightAnnotation); інтерактивні форми з Form, ButtonField, CheckboxField та RadioButtonField; рендеринг сторінок через BmpDevice; та перевірку відповідності PDF/A через ActionRules і ActionFixes. Шифрування забезпечується через AESCipher у режимі CBC.

Додайте Aspose.PDF FOSS у ваш Maven‑проект, використовуючи groupId org.aspose та artifactId aspose-pdf. Бібліотека вимагає Java 11 або новішу і повністю ліцензована під MIT. Для корпоративних функцій та підтримки дивіться Aspose.PDF for Java — Enterprise Product.

Структура документів та управління сторінками

  • Документ API: Використовуйте клас Document для створення нових PDF‑документів. Існуючі документи можна отримати за допомогою конструкторів Document(filePath) або Document(stream).
  • Керування сторінками: Додайте, отримуйте доступ і змінюйте сторінки за допомогою PageCollection. Кожен Page надає MediaBox, CropBox, обертання, ресурси та оператори вмісту.
  • Метадані: Читайте та записуйте метадані документа за допомогою DocumentInfo та XmpMetadata.
  • Структура PDF: Отримуйте доступ до базових PDF‑об’єктів через getParser(), getCatalog() та getTrailer().
  • Вбудовані файли: Керуйте колекціями вбудованих файлів за допомогою getEmbeddedFiles().

Сценарії об'єднаного обробки документів

  • PDF-генерація: Створення документів програмно шляхом створення Document і заповнення сторінок.
  • ** Аналіз документів:** Доступ до існуючих файлів для перевірки метаданих або перерахування полей форми.
  • Маніпуляція сторінками: Переробка розміру, обертання або перепорядкування сторінок за допомогою PdfFileEditor та API Page.
  • Батшеві потоки роботи: Використовуйте послідовні перетворення в декількох документах у серверних трубопроводах.

Анотації та поля форм

  • ** Ієрархія анотацій:** Абстрактний клас Annotation є основою для всіх анонтів; конкретні типи включають в себе WidgetAnnotation, FreeTextAnnotation,HighlightAnnotation та UnderlineAnnotation.
  • Інтерактивні форми: Доступ до документної форми через Document.getForm() для перерахування або створення інстанцій ButtonField, CheckboxField та RadioButtonField.
  • ** Вигляд віджета:** Контроль візуальних властивостей через AppearanceCharacteristics колір кордону, фон, обертання та написи.
  • Редагування форми: Використовуйте FormEditor та FormElement для обробки форм більшого рівня.

Огляд документів та співпраця

  • Анотації на значок: Додавати до документів для перегляду робочих потоків акценти, підчеркнення або анотацію вільного тексту.
  • Інтерактивні форми: Створіть документи, які можна заповнити за допомогою радіо-кнопель, ящиків для відбірки і кнопок для захоплення даних.
  • Витягнення даних з форм: Читання значень полей представлених форму для серверних трубопроводів.
  • Сохранування відповідності: Перевірка та фіксація документів для довгострокового архівування за допомогою ActionRules і ActionFixes.

Операції з безпеки та змісту

  • Шифрування AES: Шифровувати та розшифровувати байтові масиви даних з AESCipher за допомогою режиму CBC (AESCipher.encrypt(key, data) і AESCipher.decrypt(key, data)).
  • ** Управління артефактами:** Ознайомте і маніпулюйте заголовками, підложками, водяними знаками та фоновими зображеннями через API Artifact та ArtifactCollection.
  • ** Розмір змісту:** Налаштуйте макет вмісту сторінки з PdfFileEditor.resizeContents() і ContentsResizeParameters.
  • ** Перевірка відповідності:** Перевіряйте правила анотації та дії за стандартами PDF/A, використовуючи AnnotationRules і ActionRules.

Використання документів для безпеки

  • Зашифровані корисні навантаження: Використовуйте AESCipher для шифрування розділів даних, вбудованих у потоки документів.
  • Захист документів: Застосовуйте налаштування безпеки для контролю доступу в робочих потоках відповідності.
  • ** Водознаки:** Виявлення та управління Artifact об’єктами, що представляють водоозначки і декорації сторінок.
  • Сходованість з архівами: Виконайте ActionFixes та AnnotationFixes, щоб існуючий документ відповідав архівним стандартам PDF/A-1b.

Створення документа з віджетом

Створіть новий документ, додайте сторінку та прикріпте до нього віджетову аннотацію зі стилізацією.

try (Document doc = new Document()) ```java
try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
    w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
    w.getCharacteristics().setCaption("Submit");
    page.getAnnotations().add(w);
    doc.save("output.pdf");
}

Створення форми з допомогою кнопок радіо

Додати групу радіо-кнопок до форми документу та вибрати значення програмно.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
    radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Option2");
    doc.save("form.pdf");
}

Перевірка розмірів сторінки документа

Доступ до існуючих документів і прочитання розмірів коробки медіа першої сторінки.

try (Document doc = new Document("input.pdf")) {
    double width = doc.getPages().get(1).getMediaBox().getWidth();
    double height = doc.getPages().get(1).getMediaBox().getHeight();
    System.out.println("Page size: " + width + " x " + height);
}
  

Ресурси Підтримки та Навчання

 Українська