1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lucky-byte-textpdf

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Преобразование текстовых файлов в PDF

Для данного проекта используется XML-шаблон файла, который затем заполняется данными из JSON, объединяются и генерируются PDF-документы.Этот проект может использоваться в сценариях, требующих динамического создания PDF-файлов, таких как тестовые задания, контракты и т. д.

В данном проекте используется библиотека ZXing для генерации QR-кодов, которая требует версию JDK 1.7 или выше. Если это является проблемой и ваш проект не требует функциональности QR-кодов, вы можете отключить соответствующие части кода, чтобы он работал в среде JDK 1.6.

XML шаблоны

Шаблоны предоставляют фиксированное содержание документов, а также метки для данных, которые будут заменены. Вот пример простого шаблона:

<textpdf>
    <para>Это фиксированное содержание, <value id="json_key" /> продолжение фиксированного содержания.</para>
</textpdf>

Часть <value id="json_key" /> будет заменена значением ключа json_key из источника JSON-данных, остальное — это фиксированное содержание. XML-шаблоны TextPDF ориентированы на описание формата страницы, такие как 'размер шрифта', 'жирный шрифт', 'курсив', 'отступ абзаца', 'пробел перед и после абзаца' и т. д., что позволяет создавать удовлетворительные PDF-документы. Единственным динамическим элементом в шаблоне являются теги <value id="some">, которые заменяются значениями ключей с одинаковым названием из JSON. Вот более сложный пример шаблона:

<! -- Корневой тег шаблона должен быть textpdf -->
<textpdf>
    <title>Это заголовок, его формат отличается от обычного абзаца, шрифт больше, и он центрирован.</title>
```    <title font-size="12">Размер шрифта для заголовка можно указать, чтобы изменить значение по умолчанию.</title>
     <section>Это абзац, немного меньший по размеру, чем заголовок, и выровненный по левому краю.</section>
     <para>Обычный абзац.</para>
     <para font-family="heiti" font-size="11" font-style="жирный, подчеркнутый, курсив"
           align="право" indent="22" space-before="12" space-after="20">Этот абзац определяет множество форматов.</para>
     <para>Вы можете использовать <span font-style="жирный">элемент span для вложения стилей текста,</span> таким образом можно использовать несколько стилей внутри одного абзаца.</para>
 </textpdf>

Шаблоны TextPDF поддерживают только базовые форматы страниц (посмотреть полное описание шаблонов).

Преобразование файлов .doc

TextPDF может преобразовать файлы .doc в XML-шаблоны TextPDF. Для этого все поля вида ___________ (пустое место со знаками подчеркивания) автоматически преобразуются в теги <value> XML-шаблона, что позволяет последующему формированию окончательного PDF-документа путём интеграции JSON-данных.

JSON данные

Шаблоны данных предоставляются в формате JSON, который имеет очень простую структуру — все данные шаблонов находятся внутри объекта data, остальное не ограничено:

{
    "data": {
        "ключ1": "значение1",
        "ключ2": "значение2"
    },
    "ваш": "Какой-то",
    "мета": "Другой"
}
```

### Исходные данные в формате JSON
Обычно пользователи заполняют поля, необходимые для заполнения шаблона, используя XML-шаблон, затем сохраняют эти данные в базе данных или файл, а позже программа собирает PDF.

## Редактирование HTML
На практике пользователи должны вводить значения полей `<value>` из какого-либо источника. Для этого TextPDF может преобразовать XML-шаблон в HTML-файл, где все теги `<value>` будут заменены на HTML-вводные поля, доступные для заполнения пользователями.

## Последующее форматирование PDF
TextPDF позволяет обрабатывать существующие PDF-файлы, добавляя номер страницы (внизу страницы), водяные знаки, изображения и QR-коды.## Пример использования
### Использование командной строки
```bash
Использование:
   java -jar textpdf.jar [ПАРАМЕТР] <xmlfile|docfile> [jsonfile]
Параметры:
   -o имя_файла    : Имя выходного файла
   -f [pdf|html]   : Формат выходного файла
   -e кодировка    : Кодировка выходного файла
   -css путь1,...  : Добавляет ссылку на CSS в выходной файл
   -js путь1,...   : Добавляет ссылку на JavaScript в выходной файл
   -v              : Вывод версии программы
   -h              : Вывод справочной информации
```
Файл `xmlfile` или `docfile` используется как источник шаблона документов, а `jsonfile`  как источник данных. По умолчанию имя выходного PDF-файла совпадает с именем `xmlfile`, но можно использовать параметр `-o` для изменения имени выходного файла.> С версии 0.2 стало возможным прямое преобразование файлов .doc в PDF, что достигается путём преобразования .doc в XML-шаблон, а затем преобразования XML-шаблона в PDF. Это сделано для удобства, однако основная цель TextPDF не заключается в конвертации .doc в PDF; для этой задачи лучше всего подходят такие инструменты, как LibreOffice.

### Вызов программы
```java
import com.lucky_byte.pdf.TextPDF;

try {
    File xmlfile = new File("путь/до/xmlfile");
    File jsonfile = new File("путь/до/jsonfile");
    File pdffile = new File("путь/до/pdffile");
    TextPDF.gen(xmlfile, jsonfile, pdffile);
} catch (Exception ex) {
    ex.printStackTrace();
}
```

> С версии 0.3 метод `TextPDF.gen()` был отключен (так как он не предоставляет дополнительных параметров), теперь следует использовать объект TextParser, обратитесь к методу `main` в файле `TextPDF.java`.

Кроме возможности создания PDF-документов, TextPDF также способен создавать HTML-файлы для редактирования, а также выполнять конвертацию других типов файлов. Документ конвертации в XML шаблон, метод использования смотрите [API описание](http://git.oschina.net/lucky-byte/textpdf/wikis/API).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Создание PDF-документа с использованием XML-шаблона и данных JSON. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lucky-byte-textpdf.git
git@api.gitlife.ru:oschina-mirror/lucky-byte-textpdf.git
oschina-mirror
lucky-byte-textpdf
lucky-byte-textpdf
master