Skip to main content

Сервіс конвертації даних

Manual

GIT MD file

Для конвертації даних між собою створенно сервіс для конвертації.

Даний сервіс виконує операції приведення одного типу файлу до іншого.

Опис сервісу у configServer

Для опису з'єднання з сервісом з node.js, використовується configServer.json

Приклад опису сервісу:

{
"convertServerAddress": "localhost:4003" // замість localhost можна підставити IP де піднято сервіс
}

Опис функцій сервісу та приклад їх виклику

1. htmlToPdf

Перетворення html -> pdf

Params

  • html - закодованний рядок у base-64, який містить зчитану інформацію з html-документа

Result

  • result - закодованний рядок у base-64, який містить вихідний pdf-документ (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const {result,err} = await convert.htmlToPdf({html: <html string in base64>});
fs.outputFile('filename',result,'base64');

2. pdfMerge

Зшивання pdf-документів

Params

  • mergeFiles - масив закодованних рядків у base-64, кожен з яких містить зчитану інформацію з відповідного pdf-документа. Порядок важливий, бо саме в такому порядку, у якому будуть передані рядки, буде формуватись pdf-документ (перший рядок - перші сторінки документа і тд)

Result

  • result - закодованний рядок у base-64, який містить вихідний pdf-документ (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.pdfMerge({mergeFiles: <string array of pdfs in base64>});
fs.outputFile('filename',result,'base64');

3. csvToXls

Перетворення json -> xlsx

Params

  • buffer - рядок, який містить зчитану інформацію з csv-документа
  • header - рядок, який буде підставлено у якості заголовка
  • subheader - рядок, який буде підставлено у якості підзаголовка
  • separator - рядок, який містить у собі роздільник для csv-документа, якщо пустий - то за замовчуванням використовується ;

Result

  • result - закодованний рядок у base-64, який містить вихідний xlsx-документ (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.csvToXls({buffer: <csv string>, header: <header string>, subheader: <subheader string>, separator: <separator string>});
fs.outputFile('filename',result,'base64');

4. jsonToXls

Перетворення json -> xlsx

Params

  • buffer - рядок, який містить зчитану інформацію з json-файла
  • header - рядок, який буде підставлено у якості заголовка
  • subheader - рядок, який буде підставлено у якості підзаголовка
  • colmodel - рядок на основі якого вставляються назви колонок та обирається тип даних для певної колонки. Передається у вигляді рядка, який є перетвореним масивом об'єктів типу {name: <colname>, title: <new_col_name>, type: <column datatype>}

Result

  • result - закодованний рядок у base-64, який містить вихідний xlsx-документ (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.jsonToXls({buffer: <json string>, header: <header string>, subheader: <subheader string>, colmodel: <colmodel string>});
fs.outputFile('filename',result,'base64');

5. excelToJson

Перетворення excel -> json

Params

  • buffer - рядок, який містить зчитану інформацію з excel документу у base64

Result

  • result - json string. Являє собою набір об'єктів, коже з яких це назва колонки та відповідне їй значення (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.excelToJson({buffer: <excel data as string in base64>});
const jsonData = JSON.parse(result);

6. xmlToJson

Перетворення xml -> json

Params

  • xml - xml у вигляді рядка

Result

  • result - json string. Являє собою набір об'єктів, коже з яких це назва колонки та відповідне їй значення (пустий рядок, якщо мала місце помилка)

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.xmlToJson({xml: <xml string>});
const jsonData = JSON.parse(result);

Додаткова інформація

Перетворення відбувається відповідно до стандарту

7. htmlToDoc

Перетворення html -> ms word document

Params

  • html - html у вигляді рядка

Result

  • result - файл ms word document у вигляді рядка у base64

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.htmlToDoc({html: <html string>});

8. htmlToImage

Перетворення html -> png

Params

  • html - html у вигляді рядка

Result

  • result - зображення у вигляді рядка у base64

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.htmlToImg({html: <html string>});

9. geojsonToShp

Перетворення geojson -> shp

Params

  • geojson - geojson у вигляді рядка

Result

  • result - json string. Являє собою набір об'єктів, коже з яких це назва колонки та відповідне їй значення

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.geojsonToShp({geojson: <geojson string>});

10. shpToGeojson

Перетворення shp -> geojson

Params

  • path - шлях до shp файла та додаткових до нього файлів (shx, dbf, prj, qmd, cpg), або шлях до zip-архіву з shp

Result

  • result - geojson у вигляді рядка

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.shpToGeojson({path: <path string>});

11. libreConvert

Перетворення за допомогою libreoffice

Params

  • path - шлях до файлу, який буде конвертований у інший формат
  • to - формат у який конвертувати
  • directorySave - шлях до дерикторії зберігання (вказується пустим, якщо потрібно зберегти у ту саму директорію де файл для конвертації)

Result

  • result - шлях до перетвореного файлу

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.libreConvert({path: <path string>, to: <string>, directorySave: <string>});

11. mergeImages

Об'єднання зображень шляхом злиття

Params

  • images - масив зображень, які будуть накладатись, у вигляді base64-рядків
  • background - зображення на яке буде виконуватись накладання у вигляді base64-рядка

Result

  • result - вихідне зображення у форматі PNG у вигляді base64-рядка

Приклад виклику:

const convert = funcs.grpc('convert');
const { result } = await convert.libreConvert({path: <path string>, to: <string>, directorySave: <string>});

Залежності

  • pandas - фреймворк для роботи з таблицями. Потрібна для вивантаження запитів у вигляді таблиць excel
  • psycopg2 - бібліотека для роботи з бд
  • PyPDF2 - бібліотека для роботи з pdf файлами
  • pdfkit - бібліотека для перетворення у pdf (використовує wkhtmltopdf для обробки)
  • Jinja2 - набір шаблонів для форматування Office файлів
  • XlsxWriter - використовується у якості процесингу для створення excel файлів
  • WKHTMLTOPDF - використовується для перетворення html-документів у pdf. Обов'зкове до встановлення, бо без нього не буде працювати pdfkit
  • openpyxl - використовується для зчитування excel документів
  • xmltodict - використовується для перетворення xml -> json
  • imgkit - oбгортка Python 2 і 3 для утиліти wkhtmltoimage для перетворення HTML у зображення за допомогою Webkit
  • geopandas - фреймворк для роботи з геопросторовими даними
  • fiona - фреймворк для перетворення геопросторових даних (потрібен для коректної роботи geopandas)
  • pypandoc - це обгортка для pandoc, універсального конвертера документів
  • pillow - бібліотека для роботи з зображеннями
  • magick convert - commandline ультиліта, яка дає можливість конвертувати зображення між форматами, а також змінювати розмір зображення, розмивати, обрізати, видаляти плями, згладжувати, малювати, перевертати, об’єднувати, повторювати вибірку та багато іншого

Корисні посилання