@things-factory/pdf 7.0.33 → 7.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/bootstrap.js +6 -0
- package/client/pages/pdf-template/pdf-template-importer.ts +86 -0
- package/client/pages/pdf-template/pdf-template-list-page.ts +491 -0
- package/client/route.ts +7 -0
- package/client/tsconfig.json +13 -0
- package/dist-client/bootstrap.d.ts +1 -0
- package/dist-client/bootstrap.js +6 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/pages/pdf-template/pdf-template-importer.d.ts +23 -0
- package/dist-client/pages/pdf-template/pdf-template-importer.js +93 -0
- package/dist-client/pages/pdf-template/pdf-template-importer.js.map +1 -0
- package/dist-client/pages/pdf-template/pdf-template-list-page.d.ts +66 -0
- package/dist-client/pages/pdf-template/pdf-template-list-page.js +464 -0
- package/dist-client/pages/pdf-template/pdf-template-list-page.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +8 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-server/index.d.ts +1 -0
- package/dist-server/index.js +2 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/routers/pdf-private-router.d.ts +1 -0
- package/dist-server/routers/pdf-private-router.js +25 -0
- package/dist-server/routers/pdf-private-router.js.map +1 -0
- package/dist-server/routers/pdf-public-router.d.ts +1 -0
- package/dist-server/routers/{pdf-router.js → pdf-public-router.js} +6 -6
- package/dist-server/routers/pdf-public-router.js.map +1 -0
- package/dist-server/routes.js +13 -2
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/index.d.ts +6 -0
- package/dist-server/service/index.js +23 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/pdf-template/index.d.ts +6 -0
- package/dist-server/service/pdf-template/index.js +10 -0
- package/dist-server/service/pdf-template/index.js.map +1 -0
- package/dist-server/service/pdf-template/pdf-template-mutation.d.ts +10 -0
- package/dist-server/service/pdf-template/pdf-template-mutation.js +127 -0
- package/dist-server/service/pdf-template/pdf-template-mutation.js.map +1 -0
- package/dist-server/service/pdf-template/pdf-template-query.d.ts +11 -0
- package/dist-server/service/pdf-template/pdf-template-query.js +79 -0
- package/dist-server/service/pdf-template/pdf-template-query.js.map +1 -0
- package/dist-server/service/pdf-template/pdf-template-type.d.ts +32 -0
- package/dist-server/service/pdf-template/pdf-template-type.js +125 -0
- package/dist-server/service/pdf-template/pdf-template-type.js.map +1 -0
- package/dist-server/service/pdf-template/pdf-template.d.ts +28 -0
- package/dist-server/service/pdf-template/pdf-template.js +125 -0
- package/dist-server/service/pdf-template/pdf-template.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/pdf/pdf-template.md +160 -0
- package/package.json +13 -8
- package/server/index.ts +2 -0
- package/server/routers/pdf-private-router.ts +24 -0
- package/server/routers/{pdf-router.ts → pdf-public-router.ts} +4 -4
- package/server/routes.ts +14 -2
- package/server/service/index.ts +26 -0
- package/server/service/pdf-template/index.ts +7 -0
- package/server/service/pdf-template/pdf-template-mutation.ts +138 -0
- package/server/service/pdf-template/pdf-template-query.ts +51 -0
- package/server/service/pdf-template/pdf-template-type.ts +87 -0
- package/server/service/pdf-template/pdf-template.ts +108 -0
- package/server/tsconfig.json +10 -0
- package/things-factory.config.js +8 -1
- package/translations/en.json +11 -0
- package/translations/ja.json +9 -0
- package/translations/ko.json +11 -0
- package/translations/ms.json +9 -0
- package/translations/zh.json +9 -0
- package/dist-server/routers/pdf-router.d.ts +0 -1
- package/dist-server/routers/pdf-router.js.map +0 -1
- package/tsconfig.json +0 -9
package/things-factory.config.js
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"field.content_template": "content template",
|
|
3
|
+
"field.header_template": "header template",
|
|
4
|
+
"field.footer_template": "footer template",
|
|
5
|
+
"field.cover_template": "cover template",
|
|
6
|
+
"field.last_template": "last template",
|
|
7
|
+
"field.page_size": "page size",
|
|
8
|
+
"field.state": "state",
|
|
9
|
+
"field.watermark": "watermark",
|
|
10
|
+
"title.pdf-template list": "PDF template list"
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"field.content_template": "コンテンツテンプレート",
|
|
3
|
+
"field.header_template": "ヘッダーテンプレート",
|
|
4
|
+
"field.footer_template": "フッターテンプレート",
|
|
5
|
+
"field.cover_template": "カバーテンプレート",
|
|
6
|
+
"field.last_template": "最後のテンプレート",
|
|
7
|
+
"field.page_size": "ページサイズ",
|
|
8
|
+
"field.watermark": "ウォーターマーク"
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"field.content_template": "본문 템플릿",
|
|
3
|
+
"field.header_template": "머릿글 템플릿",
|
|
4
|
+
"field.footer_template": "바닥글 템플릿",
|
|
5
|
+
"field.cover_template": "표지 템플릿",
|
|
6
|
+
"field.last_template": "뒷표지 템플릿",
|
|
7
|
+
"field.page_size": "크기",
|
|
8
|
+
"field.state": "상태",
|
|
9
|
+
"field.watermark": "워터마크",
|
|
10
|
+
"title.pdf-template list": "PDF 템플릿 리스트"
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"field.content_template": "templat kandungan",
|
|
3
|
+
"field.header_template": "templat pengepala",
|
|
4
|
+
"field.footer_template": "templat pengaki",
|
|
5
|
+
"field.cover_template": "templat muka depan",
|
|
6
|
+
"field.last_template": "templat terakhir",
|
|
7
|
+
"field.page_size": "saiz halaman",
|
|
8
|
+
"field.watermark": "tanda air"
|
|
9
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const pdfRouter: any;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-router.js","sourceRoot":"","sources":["../../server/routers/pdf-router.ts"],"names":[],"mappings":"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","sourcesContent":["import await_spawn from 'await-spawn'\nimport { promises as fs } from 'fs'\nimport Router from 'koa-router'\nimport path from 'path'\nimport { withTempDir } from '@things-factory/utils'\n\nexport const pdfRouter = new Router()\n\n/* to-png */\npdfRouter.get('/to-png', async (context, next) => {\n const { url } = context.query\n\n const images = await withTempDir(async tmpDir => {\n const curl = await_spawn('curl', ['-s', url])\n\n await await_spawn('gs', ['-q', '-sDEVICE=png16m', '-o', `${tmpDir}/%d.png`, '-r300', '-'], {\n stdio: [curl.child.stdout, 'pipe', 'pipe']\n })\n\n const files = await fs.readdir(tmpDir)\n return Promise.all(\n files\n .sort(new Intl.Collator(undefined, { numeric: true }).compare)\n .map(filename => fs.readFile(path.join(tmpDir, filename)))\n )\n })\n\n /* TODO make it possible to return multiple images */\n context.type = 'image/png'\n context.body = images[0]\n})\n\n/* merge-pdf */\nconst mergePDFfiles = async urls => {\n return await withTempDir(async tmpdir => {\n const sources = typeof urls == 'string' ? [urls] : urls\n const output = path.join(tmpdir, 'output.pdf')\n const inputs = sources.map((source, idx) => path.join(tmpdir, `${idx}.pdf`))\n\n try {\n await Promise.all(\n sources.map((source, idx) => await_spawn('curl', ['-sSL', source, '-o', path.join(tmpdir, `${idx}.pdf`)]))\n )\n\n await await_spawn('gs', [\n '-q',\n '-sDEVICE=pdfwrite',\n '-dAutoRotatePages=/None',\n '-dNOPAUSE',\n '-dBATCH',\n '-dSAFER',\n `-sOutputFile=${output}`,\n ...inputs\n ])\n\n return await fs.readFile(output)\n } catch (e) {\n console.error('mergePDFfiles', 'error', e)\n }\n })\n}\n\npdfRouter.get('/merge', async (context, next) => {\n const searchParams = new URLSearchParams(context.querystring)\n const urls = searchParams.getAll('urls')\n\n const pdf = await mergePDFfiles(urls)\n\n context.type = 'application/pdf'\n context.body = pdf\n})\n\npdfRouter.post('/merge', async (context, next) => {\n const { urls } = context.request.body\n\n const pdf = await mergePDFfiles(urls)\n\n context.type = 'application/pdf'\n context.body = pdf\n})\n"]}
|