Сервіс конвертації даних
Manual
Для конвертації даних між собою створенно сервіс для конвертації.
Даний сервіс виконує операції приведення одного типу файлу до іншого.
Опис сервісу у 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 ультиліта, яка дає можливість конвертувати зображення між форматами, а також змінювати розмір зображення, розмивати, обрізати, видаляти плями, згладжувати, малювати, перевертати, об’єднувати, повторювати вибірку та багато іншого