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

Aspose.PDF FOSS для 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.

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

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

Типові сценарії обробки документів

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

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

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

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

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

Операції безпеки та контенту

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

Сценарії безпеки документів

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

Створити документ з анотацією віджета

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

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");
}
```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");
}

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

Отримайте доступ до існуючого документа та прочитайте розміри media box першої сторінки.

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);
}
  

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

 Українська