format with prettier
This commit is contained in:
parent
f7178d212a
commit
3c35c1e552
10 changed files with 540 additions and 466 deletions
|
|
@ -1,14 +1,14 @@
|
|||
import express from 'express'
|
||||
export const convertTemplateRoute = express.Router();
|
||||
import {mimeToExtension} from './report-template'
|
||||
import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
|
||||
import express from "express"
|
||||
export const convertTemplateRoute = express.Router()
|
||||
import { mimeToExtension } from "./report-template"
|
||||
import { LibreOfficeFileConverter } from "libreoffice-file-converter"
|
||||
|
||||
/** javascript-obfuscator:disable
|
||||
* @swagger
|
||||
* tags:
|
||||
* name: office-convert
|
||||
* description: ใช้แปลงไฟล์จากเอกสารที่ libreoffice แปลงได้ เช่น docx เป็น pdf
|
||||
*/
|
||||
*/
|
||||
|
||||
/** javascript-obfuscator:disable
|
||||
* @swagger
|
||||
|
|
@ -19,7 +19,7 @@ import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
|
|||
* parameters:
|
||||
* - name: report-name
|
||||
* in: header
|
||||
* description: ชื่อไฟล์ที่ต้องการหลังแปลง
|
||||
* description: ชื่อไฟล์ที่ต้องการหลังแปลง
|
||||
* required: true
|
||||
* schema:
|
||||
* type: string
|
||||
|
|
@ -66,49 +66,59 @@ import { LibreOfficeFileConverter } from 'libreoffice-file-converter';
|
|||
*
|
||||
*/
|
||||
convertTemplateRoute.post("/", async function (req, res) {
|
||||
try {
|
||||
if (!req.headers['content-type'] ||
|
||||
!req.headers['accept'] ||
|
||||
!req.headers['report-name'] ||
|
||||
req.headers['content-type'] !== "application/octet-stream") {
|
||||
res.statusCode = 400;
|
||||
res.statusMessage = 'Require header: content-type(application/octet-stream) accept, report-name';
|
||||
res.end(res.statusMessage);
|
||||
console.log(req.headers['content-type'],req.headers['accept'],req.headers['report-name'])
|
||||
return
|
||||
}
|
||||
let outputMediaType = mimeToExtension(req.headers['accept']);
|
||||
let reportName = req.headers['report-name']
|
||||
console.log('convert output: ' + outputMediaType);
|
||||
const libreOfficeFileConverter = new LibreOfficeFileConverter({
|
||||
childProcessOptions: {
|
||||
timeout: 60 * 1000,
|
||||
},
|
||||
});
|
||||
//const buffer = await libreOfficeFileConverter.convertBuffer(req.body, outputMediaType);
|
||||
const buffer = await libreOfficeFileConverter.convert({
|
||||
buffer:Buffer.from(req.body),
|
||||
format: outputMediaType,
|
||||
input: "buffer",
|
||||
output: "buffer"
|
||||
})
|
||||
res.statusCode = 201;
|
||||
res.setHeader('Content-Type', req.headers['accept']);
|
||||
res.setHeader('Content-Disposition', `attachment;filename=${reportName}.${outputMediaType}`);
|
||||
res.setHeader('Content-Length', buffer.length);
|
||||
res.end(buffer);
|
||||
} catch (ex) {
|
||||
if(ex instanceof SyntaxError){
|
||||
res.statusCode = 400
|
||||
res.statusMessage = ex.message
|
||||
res.end(res.statusMessage)
|
||||
console.error("report-template/convert: ", ex)
|
||||
}else{
|
||||
res.statusCode = 500
|
||||
res.statusMessage = "Internal Server Error during POST report-template/convert"
|
||||
res.end(res.statusMessage)
|
||||
console.error("report-template/html: ", ex)
|
||||
}
|
||||
try {
|
||||
if (
|
||||
!req.headers["content-type"] ||
|
||||
!req.headers["accept"] ||
|
||||
!req.headers["report-name"] ||
|
||||
req.headers["content-type"] !== "application/octet-stream"
|
||||
) {
|
||||
res.statusCode = 400
|
||||
res.statusMessage =
|
||||
"Require header: content-type(application/octet-stream) accept, report-name"
|
||||
res.end(res.statusMessage)
|
||||
console.log(
|
||||
req.headers["content-type"],
|
||||
req.headers["accept"],
|
||||
req.headers["report-name"]
|
||||
)
|
||||
return
|
||||
}
|
||||
})
|
||||
|
||||
let outputMediaType = mimeToExtension(req.headers["accept"])
|
||||
let reportName = req.headers["report-name"]
|
||||
console.log("convert output: " + outputMediaType)
|
||||
const libreOfficeFileConverter = new LibreOfficeFileConverter({
|
||||
childProcessOptions: {
|
||||
timeout: 60 * 1000,
|
||||
},
|
||||
})
|
||||
//const buffer = await libreOfficeFileConverter.convertBuffer(req.body, outputMediaType);
|
||||
const buffer = await libreOfficeFileConverter.convert({
|
||||
buffer: Buffer.from(req.body),
|
||||
format: outputMediaType,
|
||||
input: "buffer",
|
||||
output: "buffer",
|
||||
})
|
||||
res.statusCode = 201
|
||||
res.setHeader("Content-Type", req.headers["accept"])
|
||||
res.setHeader(
|
||||
"Content-Disposition",
|
||||
`attachment;filename=${reportName}.${outputMediaType}`
|
||||
)
|
||||
res.setHeader("Content-Length", buffer.length)
|
||||
res.end(buffer)
|
||||
} catch (ex) {
|
||||
if (ex instanceof SyntaxError) {
|
||||
res.statusCode = 400
|
||||
res.statusMessage = ex.message
|
||||
res.end(res.statusMessage)
|
||||
console.error("report-template/convert: ", ex)
|
||||
} else {
|
||||
res.statusCode = 500
|
||||
res.statusMessage =
|
||||
"Internal Server Error during POST report-template/convert"
|
||||
res.end(res.statusMessage)
|
||||
console.error("report-template/html: ", ex)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue