From cb0c42fbeb57853c10bade90d8eb978207a603f9 Mon Sep 17 00:00:00 2001 From: koj729 Date: Mon, 15 Jun 2026 16:10:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=ED=94=88=EC=86=8C=EC=8A=A4=20?= =?UTF-8?q?=EC=A7=81=EC=A0=91=EB=B7=B0=EC=96=B4=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/archiveController.js | 21 +- libs/hwp.js | Bin 0 -> 952382 bytes local_clear_queue.js | 52 ++++ local_pdf_worker.js | 199 ++++++++++++ logs/2026-06-15.exception.log | 6 + package-lock.json | 39 +++ package.json | 1 + queue.js | 10 +- temp_convert/input_1_1781504351932.hwpx | Bin 0 -> 13824 bytes temp_convert/input_2_1781504354837.docx | Bin 0 -> 6381 bytes temp_convert/input_3_1781504356321.docx | Bin 0 -> 6381 bytes temp_convert/input_4_1781504357435.hwpx | Bin 0 -> 13824 bytes temp_convert/input_5_1781504358912.hwpx | Bin 0 -> 13824 bytes temp_convert/input_6_1781504360423.docx | Bin 0 -> 6381 bytes temp_convert/input_7_1781505810092.docx | Bin 0 -> 6381 bytes views/main/jsm/archive/common.js | 26 +- views/main/jsm/archive/pageRenderer.js | 291 +++++++++++++++++- views/main/jsm/officialDoc/docPageRenderer.js | 276 ++++++++++++++++- views/main/jsm/popup.js | 273 ++++++++++++++++ views/main/main.html | 22 ++ views/main/popup.html | 19 ++ 21 files changed, 1202 insertions(+), 33 deletions(-) create mode 100644 libs/hwp.js create mode 100644 local_clear_queue.js create mode 100644 local_pdf_worker.js create mode 100644 temp_convert/input_1_1781504351932.hwpx create mode 100644 temp_convert/input_2_1781504354837.docx create mode 100644 temp_convert/input_3_1781504356321.docx create mode 100644 temp_convert/input_4_1781504357435.hwpx create mode 100644 temp_convert/input_5_1781504358912.hwpx create mode 100644 temp_convert/input_6_1781504360423.docx create mode 100644 temp_convert/input_7_1781505810092.docx diff --git a/controllers/archiveController.js b/controllers/archiveController.js index fea4796..655a52d 100644 --- a/controllers/archiveController.js +++ b/controllers/archiveController.js @@ -3576,15 +3576,22 @@ exports.mgmtFunc_resetConvert = async(req, res) => { let { params } = req.body; let { resourcePath, dataId } = params; - // convertingDataArr.map(async data => { - // if (data.dataId == dataId) { - // let job = await convertPdfQueue.getJob(data.jobId); - // if (job) await redisConnection.set(`cancel:job:${data.jobId}`, '1'); - // } - // }) + for (const data of convertingDataArr) { + if (Number(data.dataId) === Number(dataId)) { + try { + const job = await convertPdfQueue.getJob(data.jobId); + if (job) { + await job.remove(); + console.log(`[Cancel] Successfully removed job ${data.jobId} from convert-pdf queue`); + } + } catch (jobErr) { + console.error('[Cancel] Error removing job:', jobErr); + } + } + } //// 배열에서 파일 정보 삭제 - convertingDataArr = convertingDataArr.filter(data => data.dataId !== dataId); + convertingDataArr = convertingDataArr.filter(data => Number(data.dataId) !== Number(dataId)); const waiting = await convertPdfQueue.getWaitingCount(); const active = await convertPdfQueue.getActiveCount(); diff --git a/libs/hwp.js b/libs/hwp.js new file mode 100644 index 0000000000000000000000000000000000000000..76f981c58fb68667ca9ac3fa9cce724857c33516 GIT binary patch literal 952382 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 literal 0 HcmV?d00001 diff --git a/local_clear_queue.js b/local_clear_queue.js new file mode 100644 index 0000000..13b13da --- /dev/null +++ b/local_clear_queue.js @@ -0,0 +1,52 @@ +/** + * PM ver4.0 - Redis convert-pdf 큐 전체 초기화 스크립트 + * + * 이 스크립트는 Redis에 쌓여있는 'convert-pdf' 대기열의 모든 작업(대기 중, 실패 등)을 제거합니다. + * + * [실행 방법] + * node local_clear_queue.js + */ + +const { Queue } = require('bullmq'); +const Redis = require('ioredis'); +require('dotenv').config(); + +console.log('Redis Host:', process.env.REDIS_HOST || 'localhost'); +console.log('Redis Port:', process.env.REDIS_PORT || 6379); + +const connection = new Redis({ + host: process.env.REDIS_HOST || 'localhost', + port: +(process.env.REDIS_PORT || 6379), + maxRetriesPerRequest: null, + password: process.env.REDIS_PASSWORD || undefined +}); + +connection.on('connect', async () => { + console.log('✔️ Connected to Redis. Clearing queue...'); + try { + const queueName = 'convert-pdf'; + const queue = new Queue(queueName, { connection }); + + // 대기 중인 작업 모두 제거 (drain) + await queue.drain(); + console.log(`🧹 ${queueName} 큐의 대기 중인 모든 작업을 제거했습니다.`); + + // 완료/실패 작업도 청소 + await queue.clean(0, 0, 'completed'); + await queue.clean(0, 0, 'failed'); + console.log('🧹 완료 및 실패 내역을 청소했습니다.'); + + const counts = await queue.getJobCounts(); + console.log('\n--- 현재 큐 상태 ---'); + console.log(JSON.stringify(counts, null, 2)); + + } catch (err) { + console.error('❌ 에러 발생:', err); + } finally { + connection.disconnect(); + } +}); + +connection.on('error', (err) => { + console.error('❌ Redis Connection Error:', err); +}); diff --git a/local_pdf_worker.js b/local_pdf_worker.js new file mode 100644 index 0000000..f7fd43a --- /dev/null +++ b/local_pdf_worker.js @@ -0,0 +1,199 @@ +/** + * PM ver4.0 - Local PDF Conversion Worker + * + * 이 스크립트는 로컬 개발 환경에서 PDF 변환기(BullMQ Worker) 역할을 수행합니다. + * 백엔드 서버가 'convert-pdf' 큐에 등록한 작업을 가져와, programs/ 하위의 .exe 변환기를 실행하고 + * 변환된 PDF 파일을 MinIO 스토리지에 업로드한 후 DB를 업데이트합니다. + * + * [실행 전 요구사항] + * 1. .NET 8 런타임 설치 필요 (https://dotnet.microsoft.com/ko-kr/download/dotnet/8.0) + * 2. 한글 파일(.hwp/.hwpx) 변환을 테스트하려면 한컴오피스 한글이 로컬에 설치되어 있어야 합니다. + * + * [실행 방법] + * node local_pdf_worker.js + */ + +const { Worker } = require('bullmq'); +const Redis = require('ioredis'); +const fs = require('fs'); +const path = require('path'); +const { execFile } = require('child_process'); +const axios = require('axios'); +const { PutObjectCommand } = require('@aws-sdk/client-s3'); + +// 로컬 환경설정 로드 +require('dotenv').config(); + +const pool = require('./db/pool.js'); +const onPremiseClient = require('./config/onPremiseClient.js'); +const cloudClient = require('./config/cloudClient.js'); + +console.log('============================================='); +console.log(' PM ver4.0 로컬 PDF 변환 워커 시작 중... '); +console.log('============================================='); +console.log('Redis Host:', process.env.REDIS_HOST || 'localhost'); +console.log('Redis Port:', process.env.REDIS_PORT || 6379); +console.log('Database Host:', process.env.ONPREMISE_POSTGRES_HOST || 'localhost'); +console.log('============================================='); + +const connection = new Redis({ + host: process.env.REDIS_HOST || 'localhost', + port: +(process.env.REDIS_PORT || 6379), + maxRetriesPerRequest: null, + password: process.env.REDIS_PASSWORD || undefined +}); + +// 임시 디렉토리 생성 +const tempDir = path.join(__dirname, 'temp_convert'); +if (!fs.existsSync(tempDir)) { + fs.mkdirSync(tempDir); +} + +const worker = new Worker('convert-pdf', async (job) => { + const { resourcePath, url, objectKey, bucket, storageType, dataId, projectId, userInfoString, userIp, initiator, type } = job.data; + console.log(`\n[Job ${job.id}] 📥 PDF 변환 작업 감지: ${resourcePath} (ID: ${dataId}, Type: ${type})`); + + // 1. MinIO/S3 클라이언트 결정 + const s3 = storageType === 'Cloud' ? cloudClient : onPremiseClient; + + // 2. Presigned URL을 사용하여 원본 파일 다운로드 + console.log(`[Job ${job.id}] 🌐 원본 파일 다운로드 중...`); + const response = await axios.get(url, { responseType: 'arraybuffer' }); + const buffer = Buffer.from(response.data); + + // 3. 로컬 임시 폴더에 원본 파일 저장 + const origFileName = path.basename(objectKey).split('__')[0]; + const ext = path.extname(origFileName).toLowerCase().replace('.', ''); + const tempInputPath = path.join(tempDir, `input_${job.id}_${Date.now()}.${ext}`); + fs.writeFileSync(tempInputPath, buffer); + console.log(`[Job ${job.id}] 💾 원본 임시 저장 완료: ${tempInputPath}`); + + // 4. 실행할 변환기 프로그램 선정 + let exePath = ''; + if (['hwp', 'hwpx'].includes(ext)) { + exePath = path.join(__dirname, 'programs/hwpConverter/HwpToPdfConverter.exe'); + } else if (['docx', 'xlsx', 'xlsm', 'xls', 'doc', 'ppt', 'pptx'].includes(ext)) { + exePath = path.join(__dirname, 'programs/msofficeConverter/OfficeToPDFConverter.exe'); + } else if (['dwg', 'dxf'].includes(ext)) { + exePath = path.join(__dirname, 'programs/dwgToPdfConverter/DwgToPdfSwigConverter.exe'); + } else { + throw new Error(`지원하지 않는 파일 형식입니다: ${ext}`); + } + + if (!fs.existsSync(exePath)) { + throw new Error(`변환기 실행 파일을 찾을 수 없습니다: ${exePath}`); + } + + const tempOutputPath = tempInputPath.replace(`.${ext}`, '.pdf'); + console.log(`[Job ${job.id}] ⚙️ CLI 변환 실행: ${path.basename(exePath)}`); + + // 5. CLI 실행을 통해 PDF 변환 수행 + await new Promise((resolve, reject) => { + execFile(exePath, [tempInputPath, tempOutputPath], (err, stdout, stderr) => { + if (err) { + console.error(`[Job ${job.id}] ❌ 변환 CLI 실행 에러:`, err.message); + return reject(err); + } + console.log(`[Job ${job.id}] 📝 변환기 출력:`, stdout.trim()); + resolve(); + }); + }); + + if (!fs.existsSync(tempOutputPath)) { + throw new Error(`변환 성공했으나 결과 PDF 파일이 존재하지 않습니다: ${tempOutputPath}`); + } + + // 6. 생성된 PDF를 MinIO 스토리지에 업로드 + console.log(`[Job ${job.id}] 📤 변환된 PDF MinIO 스토리지 업로드 중...`); + const pdfBuffer = fs.readFileSync(tempOutputPath); + + // preview_key, popup_key 네이밍 규칙 적용 + let previewKey = objectKey.replace('archive/origin/', 'archive/preview/').replace(/\.[^.]+$/, '.pdf'); + let popupKey = objectKey.replace('archive/origin/', 'archive/popup/').replace(/\.[^.]+$/, '.pdf'); + + if (previewKey === objectKey) { + previewKey = `archive/preview/${path.basename(objectKey)}`.replace(/\.[^.]+$/, '.pdf'); + } + if (popupKey === objectKey) { + popupKey = `archive/popup/${path.basename(objectKey)}`.replace(/\.[^.]+$/, '.pdf'); + } + + // preview_key 업로드 + await s3.send(new PutObjectCommand({ + Bucket: bucket, + Key: previewKey, + Body: pdfBuffer, + ContentType: 'application/pdf' + })); + + // popup_key 업로드 + await s3.send(new PutObjectCommand({ + Bucket: bucket, + Key: popupKey, + Body: pdfBuffer, + ContentType: 'application/pdf' + })); + console.log(`[Job ${job.id}] 🚀 업로드 성공: \n - Preview Key: ${previewKey}\n - Popup Key: ${popupKey}`); + + // 7. 데이터베이스 레코드 정보 업데이트 (preview_key, popup_key 반영) + console.log(`[Job ${job.id}] 🗄️ 데이터베이스 정보 갱신 중...`); + const envSetting = process.env.NODE_ENV || 'development'; + const tbData = envSetting === 'production' ? 'tb_data' : '_test_tb_data'; + + if (type === 'archive') { + const updateQuery = ` + UPDATE ver4.${tbData} + SET preview_key = $1, popup_key = $2, mod_date = NOW(), mod_activity = 'convertPdf' + WHERE data_id = $3 + `; + await pool.query(updateQuery, [previewKey, popupKey, dataId]); + } else if (type === 'officialDoc') { + const updateQuery = ` + UPDATE ver4.tb_official_doc_file + SET preview_key = $1, popup_key = $2, mod_date = NOW(), mod_activity = 'convertDocPdf' + WHERE doc_id = $3 + `; + await pool.query(updateQuery, [previewKey, popupKey, dataId]); + } + console.log(`[Job ${job.id}] ✅ 데이터베이스 업데이트 완료.`); + + // 8. 로컬 임시 파일 삭제 + try { + fs.unlinkSync(tempInputPath); + fs.unlinkSync(tempOutputPath); + console.log(`[Job ${job.id}] 🧹 임시 파일 정리 완료.`); + } catch (cleanErr) { + console.warn(`[Job ${job.id}] ⚠️ 임시 파일 제거 실패:`, cleanErr.message); + } + + // 완료 후 completed 이벤트 리스너로 데이터 리턴 + return { + projectId, + userInfoString, + userIp, + resourcePath, + dataId, + storageType, + previewKey, + popupKey + }; +}, { + connection, + concurrency: 1 // 한 번에 하나의 변환 프로세스만 처리 +}); + +worker.on('ready', () => { + console.log('🚀 PDF 변환 워커가 준비되었습니다. 작업을 대기 중입니다...'); +}); + +worker.on('active', (job) => { + console.log(`▶️ Job ${job.id} 시작`); +}); + +worker.on('completed', (job, result) => { + console.log(`✔️ Job ${job.id} 완료`); +}); + +worker.on('failed', (job, err) => { + console.error(`❌ Job ${job.id} 실패:`, err.message); +}); diff --git a/logs/2026-06-15.exception.log b/logs/2026-06-15.exception.log index d28800f..198cbba 100644 --- a/logs/2026-06-15.exception.log +++ b/logs/2026-06-15.exception.log @@ -83,3 +83,9 @@ Error: listen EADDRINUSE: address already in use 0.0.0.0:6565 TypeError: Cannot read properties of undefined (reading 'message') at exports.removeTarget (D:\40. 개발소스\04. PM\pm_ver4\trunk\PM_ver4\controllers\archiveController.js:2895:33) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) +2026-06-15 14:51:35 [error 테스트: ] error: uncaughtException: listen EADDRINUSE: address already in use 0.0.0.0:6565 +Error: listen EADDRINUSE: address already in use 0.0.0.0:6565 + at Server.setupListenHandle [as _listen2] (node:net:2008:16) + at listenInCluster (node:net:2065:12) + at node:net:2274:7 + at process.processTicksAndRejections (node:internal/process/task_queues:90:21) diff --git a/package-lock.json b/package-lock.json index b444b2f..c603262 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "express-session": "^1.18.0", "gpt-tokenizer": "^3.0.1", "helmet": "^8.1.0", + "hwp.js": "^0.0.3", "ioredis": "^5.6.1", "jsonwebtoken": "^9.0.3", "morgan": "^1.10.0", @@ -1964,6 +1965,15 @@ "node": ">= 0.6" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/agent-base": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", @@ -2340,6 +2350,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3509,6 +3532,16 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/hwp.js": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hwp.js/-/hwp.js-0.0.3.tgz", + "integrity": "sha512-qVdQjpyfR2rVmfZbbqd/8LAtt8YbwtZ2vm9FkBJj1UGPTP0Zs9+miUDrsPSfARpqkx3L7NeI1qR6hag5DaicyQ==", + "license": "Apache-2.0", + "dependencies": { + "cfb": "^1.2.0", + "pako": "^1.0.11" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -4366,6 +4399,12 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", diff --git a/package.json b/package.json index c55debf..cf284c8 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "express-session": "^1.18.0", "gpt-tokenizer": "^3.0.1", "helmet": "^8.1.0", + "hwp.js": "^0.0.3", "ioredis": "^5.6.1", "jsonwebtoken": "^9.0.3", "morgan": "^1.10.0", diff --git a/queue.js b/queue.js index 3143735..e1a8f3a 100644 --- a/queue.js +++ b/queue.js @@ -40,11 +40,11 @@ convertPdfQueueEvents.on('failed', async ({ jobId, failedReason }) => { let jobName = job.name; let jobQueueName = job.queue.name; let { resourcePath, projectId, userInfoString, serviceName, dataId } = job.data; - if (!resourcePath) resourcePath = job.progress.resourcePath; - if (!projectId) projectId = job.progress.projectId; - if (!userInfoString) userInfoString = job.progress.userInfoString; - if (!serviceName) serviceName = job.progress.serviceName; - if (!dataId) dataId = job.progress.dataId; + if (!resourcePath && job.progress && typeof job.progress === 'object') resourcePath = job.progress.resourcePath; + if (!projectId && job.progress && typeof job.progress === 'object') projectId = job.progress.projectId; + if (!userInfoString && job.progress && typeof job.progress === 'object') userInfoString = job.progress.userInfoString; + if (!serviceName && job.progress && typeof job.progress === 'object') serviceName = job.progress.serviceName; + if (!dataId && job.progress && typeof job.progress === 'object') dataId = job.progress.dataId; let userInfo = JSON.parse(userInfoString); let { user_id, user_nm } = userInfo; diff --git a/temp_convert/input_1_1781504351932.hwpx b/temp_convert/input_1_1781504351932.hwpx new file mode 100644 index 0000000000000000000000000000000000000000..b1ffd61ea024ac6278b3e22aa4bee1d0b26a6416 GIT binary patch literal 13824 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 TL`#*&`(&Hq_ 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 literal 0 HcmV?d00001 diff --git a/temp_convert/input_3_1781504356321.docx b/temp_convert/input_3_1781504356321.docx new file mode 100644 index 0000000000000000000000000000000000000000..e1ede68f9d983560282ecaa670c9cd87cb989801 GIT binary patch literal 6381 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 literal 0 HcmV?d00001 diff --git a/temp_convert/input_4_1781504357435.hwpx b/temp_convert/input_4_1781504357435.hwpx new file mode 100644 index 0000000000000000000000000000000000000000..b1ffd61ea024ac6278b3e22aa4bee1d0b26a6416 GIT binary patch literal 13824 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 TL`#*&`(&Hq_ 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 literal 0 HcmV?d00001 diff --git a/temp_convert/input_7_1781505810092.docx b/temp_convert/input_7_1781505810092.docx new file mode 100644 index 0000000000000000000000000000000000000000..e1ede68f9d983560282ecaa670c9cd87cb989801 GIT binary patch literal 6381 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 literal 0 HcmV?d00001 diff --git a/views/main/jsm/archive/common.js b/views/main/jsm/archive/common.js index fa2f041..526fc4b 100644 --- a/views/main/jsm/archive/common.js +++ b/views/main/jsm/archive/common.js @@ -333,7 +333,10 @@ export async function openNewWindowViewer() { } let getDataInfoRes = await axios.post(`${vars.path_name}/getDataInfo`, { params: getDataInfoParams } ); if (getDataInfoRes.data.message == 'getDataInfo_success') { - let objectKey = getDataInfoRes.data.result.popup_key; + let result = getDataInfoRes.data.result; + let directViewExtArr = ['xls', 'xlsx', 'xlsm', 'docx', 'hwp', 'hwpx']; + let objectKey = directViewExtArr.includes(ext) ? result.object_key : result.popup_key; + if(objectKey == undefined || objectKey == `` || objectKey == null){ return; } @@ -365,19 +368,26 @@ export async function openNewWindowViewer() { let open_ext = `pdf`; switch(ext){ case 'pdf' : - case 'hwp' : - case 'hwpx' : - case 'xls' : - case 'xlsm' : + case 'doc' : case 'ppt' : case 'pptx' : - case 'doc' : - case 'docx' : case 'dwg' : case 'dxf' : case 'grm' : open_ext = 'pdf'; - break + break; + case 'hwp' : + case 'hwpx' : + open_ext = ext; + break; + case 'xls' : + case 'xlsx' : + case 'xlsm' : + open_ext = ext; + break; + case 'docx' : + open_ext = ext; + break; case 'gsim' : open_ext = 'gsim'; break diff --git a/views/main/jsm/archive/pageRenderer.js b/views/main/jsm/archive/pageRenderer.js index d3ff1dc..f871b4c 100644 --- a/views/main/jsm/archive/pageRenderer.js +++ b/views/main/jsm/archive/pageRenderer.js @@ -5176,7 +5176,14 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru let isLowerExt = true; let ext = splitBaseAndExt(resourcePath, isLowerExt).ext; - let previewKey = getDataFromTreeObject(resourcePath, 'file', vars.currentTreeObject).data.previewKey; + let excelDirectArr = ['xls', 'xlsx', 'xlsm']; + let hwpDirectArr = ['hwp', 'hwpx']; + let wordDirectArr = ['docx']; + let isDirectView = excelDirectArr.includes(ext) || hwpDirectArr.includes(ext) || wordDirectArr.includes(ext); + + let treeData = getDataFromTreeObject(resourcePath, 'file', vars.currentTreeObject)?.data || {}; + let previewKey = treeData.previewKey; + let objectKey = treeData.objectKey || treeData.object_key; // 문서 뷰어 실행 시 미리보기 10장 제한 문구 표시 let thumbAlert = document.querySelector('.archive-main-right .viewer-container .viewer-header .thumb-alert'); @@ -5186,9 +5193,15 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru thumbAlert.style.display = 'none'; } + // fallback-pdf-btn 숨김 + const mainFallbackPdfBtn = document.getElementById('main-fallback-pdf-btn'); + if (mainFallbackPdfBtn) { + mainFallbackPdfBtn.style.display = 'none'; + } + // 지원 파일인 경우 뷰어 프로그레스 표시, 대기 시간 700ms로 설정, 전체보기 버튼 표시 let originViewBtn = document.querySelector('.archive-main-right .viewer-container .viewer-header .btn'); - if (allArr.includes(ext) && previewKey) { + if (allArr.includes(ext) && (previewKey || isDirectView)) { toggleViewerProgress(true); vars.viewerConnectingTime = 700; originViewBtn.style.display = 'flex'; @@ -5214,7 +5227,7 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru let PresignedUrl = undefined; let openFileViewer = true; - if (!previewKey) { + if (!previewKey || !objectKey) { let getDataInfoParams = { userInfoString: vars.userInfoString, storageType: vars.storageType, @@ -5225,18 +5238,24 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru let getDataInfoRes = await axios.post(`${vars.path_name}/getDataInfo`, { params: getDataInfoParams } ); if (getDataInfoRes.data.message == 'getDataInfo_success') { - previewKey = getDataInfoRes.data.result.preview_key; + let result = getDataInfoRes.data.result; + if (result) { + previewKey = result.preview_key; + objectKey = result.object_key; + } } } + let targetKey = isDirectView ? objectKey : previewKey; + if (allArr.includes(ext)) { - if (previewKey == undefined || previewKey == `` || previewKey == null) { + if (targetKey == undefined || targetKey == `` || targetKey == null) { viewerConvert(); openFileViewer = false; shouldAddClickLog = false; } else { let generateDownloadUrlParams = { - objectKey: previewKey, + objectKey: targetKey, resourcePath: resourcePath } let generateDownloadUrlRes = await axios.post(`${vars.path_name}/generateDownloadUrl`, generateDownloadUrlParams); @@ -5252,12 +5271,16 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru if (openFileViewer) { let ext = (splitBaseAndExt(resourcePath).ext).toLowerCase(); + let pdfArrFiltered = pdfArr.filter(e => !excelDirectArr.includes(e) && !hwpDirectArr.includes(e) && !wordDirectArr.includes(e)); // 3D뷰어 썸네일 변수 const thumbnail_key = getDataFromTreeObject(resourcePath, 'file', vars.currentTreeObject).data?.thumbnailKey; if (allArr.includes(ext)) { - if (pdfArr.includes(ext)) viewerPdf(PresignedUrl); + if (pdfArrFiltered.includes(ext)) viewerPdf(PresignedUrl); + if (excelDirectArr.includes(ext)) viewerExcel(PresignedUrl); + if (hwpDirectArr.includes(ext)) viewerHwp(PresignedUrl); + if (wordDirectArr.includes(ext)) viewerWord(PresignedUrl); if (gsimArr.includes(ext)) viewerGsim(PresignedUrl); if (ifcArr.includes(ext)) viewerIfc(PresignedUrl, thumbnail_key, resourcePath, dataId, vars.path_name); if (threeArr.includes(ext)) viewer3d(PresignedUrl, thumbnail_key, resourcePath, dataId, vars.path_name); @@ -5369,6 +5392,250 @@ export async function renderViewer(resourcePath, dataId, shouldAddClickLog = tru vars.viewer.dataset.viewerType = 'convert'; } + // ----------------------------------------------------------------- + // 오픈소스 문서 직접 뷰잉 및 PDF 폴백 함수 정의 (Main Viewer) + // ----------------------------------------------------------------- + function initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey) { + const btn = document.getElementById('main-fallback-pdf-btn'); + if (!btn) return; + + // 이전 등록된 리스너 제거를 위해 복사 대체 + const newBtn = btn.cloneNode(true); + btn.parentNode.replaceChild(newBtn, btn); + + newBtn.style.display = 'flex'; + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + + newBtn.addEventListener('click', async () => { + newBtn.querySelector('.text').textContent = '로딩 중...'; + newBtn.style.pointerEvents = 'none'; + + try { + // 1. 최신 메타데이터 (preview_key) 조회 + if (!previewKey) { + let getDataInfoParams = { + userInfoString: vars.userInfoString, + storageType: vars.storageType, + dataIdArr: [dataId], + isRemoved: false, + debug: "main fallback" + } + let getDataInfoRes = await axios.post(`${vars.path_name}/getDataInfo`, { params: getDataInfoParams } ); + if (getDataInfoRes.data.message == 'getDataInfo_success') { + let result = getDataInfoRes.data.result; + if (result) { + previewKey = result.preview_key; + objectKey = result.object_key; + } + } + } + + // 2. 만약 PDF 변환본이 아직 없다면 백엔드 변환 요청 + if (!previewKey) { + newBtn.querySelector('.text').textContent = 'PDF 변환 요청 중...'; + await convertPdf(resourcePath, dataId); + alert('서버 측 PDF 변환이 시작되었습니다. 잠시 후 다시 클릭해 주세요.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + return; + } + + // 3. PDF용 Presigned URL 생성 + let generateDownloadUrlParams = { + objectKey: previewKey, + resourcePath: resourcePath + } + let generateDownloadUrlRes = await axios.post(`${vars.path_name}/generateDownloadUrl`, generateDownloadUrlParams); + if (generateDownloadUrlRes.data.message == 'generateDownloadUrl_success') { + let pdfUrl = generateDownloadUrlRes.data.url; + + // 화면 초기화 및 PDF 뷰어 로드 + vars.viewer = viewerWrap.querySelector('.viewer'); + vars.viewer.innerHTML = ''; + newBtn.style.display = 'none'; + viewerPdf(pdfUrl); + } else { + alert('PDF 미리보기 주소 획득에 실패했습니다.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + } catch (err) { + console.error(err); + alert('PDF 변환 및 조회 중 오류가 발생했습니다.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + }); + } + + function viewerExcel(presignedUrl) { + vars.viewer.innerHTML = '

엑셀 데이터를 불러오는 중...
'; + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error(`HTTP ${res.status} ${res.statusText}`); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + vars.viewer.innerHTML = ''; + + LuckyExcel.transformExcelToLucky(arrayBuffer, function(exportJson, luckysheetfile) { + if(exportJson.sheets == null || exportJson.sheets.length == 0) { + vars.viewer.innerHTML = '
엑셀 데이터를 파싱하지 못했습니다. (xls 확장자는 지원하지 않습니다.)
'; + initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey); + return; + } + + if (window.luckysheet) { + window.luckysheet.destroy(); + } + + vars.viewer.style.position = 'relative'; + const container = document.createElement('div'); + container.id = 'luckysheet_inner'; + container.style.margin = '0px'; + container.style.padding = '0px'; + container.style.position = 'absolute'; + container.style.width = '100%'; + container.style.height = '100%'; + container.style.left = '0px'; + container.style.top = '0px'; + vars.viewer.appendChild(container); + + try { + window.luckysheet.create({ + container: 'luckysheet_inner', + data: exportJson.sheets, + title: exportJson.info.name || 'Excel Viewer', + lang: 'en', + showinfobar: false, + myFolderUrl: 'javascript:void(0)' + }); + } catch (createErr) { + console.error("Luckysheet create error: ", createErr); + vars.viewer.innerHTML = `
+
엑셀 시트 생성 중 오류가 발생했습니다.
+
에러: ${createErr.message}
+
`; + } + }, function(err) { + console.error("Luckysheet transform error: ", err); + vars.viewer.innerHTML = `
+
엑셀 파일을 읽는 중 오류가 발생했습니다.
+
상세: ${err.message || err}
+
`; + initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey); + }); + }) + .catch(err => { + console.error(err); + vars.viewer.innerHTML = `
+
엑셀 파일을 불러오는데 실패했습니다.
+
에러: ${err.message}
+
`; + initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey); + }); + + vars.viewer.dataset.viewerType = 'excel'; + } + + function viewerWord(presignedUrl) { + vars.viewer.innerHTML = '
워드 문서를 불러오는 중...
'; + initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey); + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error('Word fetch failed'); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + vars.viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const docxInner = document.createElement('div'); + docxInner.style.background = '#ffffff'; + docxInner.style.margin = '0 auto'; + docxInner.style.maxWidth = '800px'; + docxInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + docxInner.style.padding = '40px'; + + container.appendChild(docxInner); + vars.viewer.appendChild(container); + + docx.renderAsync(arrayBuffer, docxInner) + .then(() => console.log("docx rendered")) + .catch(err => { + console.error(err); + docxInner.innerHTML = '
워드 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + }); + }) + .catch(err => { + console.error(err); + vars.viewer.innerHTML = '
워드 문서를 불러오는데 실패했습니다.
'; + }); + + vars.viewer.dataset.viewerType = 'word'; + } + + function viewerHwp(presignedUrl) { + vars.viewer.innerHTML = '
한글 문서를 불러오는 중...
'; + initMainFallbackPdfButton(dataId, resourcePath, objectKey, previewKey); + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error('HWP fetch failed'); + return res.blob(); + }) + .then(blob => { + vars.viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const hwpInner = document.createElement('div'); + hwpInner.style.background = '#ffffff'; + hwpInner.style.margin = '0 auto'; + hwpInner.style.maxWidth = '800px'; + hwpInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + hwpInner.style.padding = '40px'; + hwpInner.style.minHeight = '100%'; + + container.appendChild(hwpInner); + vars.viewer.appendChild(container); + + const reader = new FileReader(); + reader.onload = (e) => { + const bstr = e.target.result; + try { + new hwp.Viewer(hwpInner, bstr); + } catch (err) { + console.error("hwp.js error: ", err); + hwpInner.innerHTML = '
한글 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + } + }; + reader.readAsBinaryString(blob); + }) + .catch(err => { + console.error(err); + vars.viewer.innerHTML = '
한글 문서를 불러오는데 실패했습니다.
'; + }); + + vars.viewer.dataset.viewerType = 'hwp'; + } + //// 원본 viewer async function viewerPdf(presignedUrl) { if(presignedUrl == undefined || presignedUrl == ``){ @@ -5830,6 +6097,16 @@ export function resetViewer() { } } + if (vars.viewer.dataset.viewerType == 'excel') { + if (window.luckysheet) { + try { + window.luckysheet.destroy(); + } catch (e) { + console.error("Luckysheet destroy error: ", e); + } + } + } + vars.viewer.dataset.viewerType = ''; } diff --git a/views/main/jsm/officialDoc/docPageRenderer.js b/views/main/jsm/officialDoc/docPageRenderer.js index 56e9bff..ebbd182 100644 --- a/views/main/jsm/officialDoc/docPageRenderer.js +++ b/views/main/jsm/officialDoc/docPageRenderer.js @@ -562,12 +562,29 @@ export async function renderDocViewer(resourcePath, docId) { await viewerMetadata(docVars.allDocData?.find((doc) => doc.doc_id === docId)); } + // fallback-pdf-btn 숨김 + const docFallbackPdfBtn = document.getElementById('doc-fallback-pdf-btn'); + if (docFallbackPdfBtn) { + docFallbackPdfBtn.style.display = 'none'; + } + + let ext = splitBaseAndExt(resourcePath).ext.toLowerCase(); + + let excelDirectArr = ['xls', 'xlsx', 'xlsm']; + let hwpDirectArr = ['hwp', 'hwpx']; + let wordDirectArr = ['docx']; + let isDirectView = excelDirectArr.includes(ext) || hwpDirectArr.includes(ext) || wordDirectArr.includes(ext); + + let selectedDoc = docVars.allDocData?.find((doc) => doc.doc_id === docId); + let previewKey = selectedDoc?.preview_key; + let objectKey = selectedDoc?.object_key; + + let targetKey = isDirectView ? objectKey : previewKey; + //Presigned URL let PresignedUrl = undefined; - let objectKey = docVars.allDocData?.find((doc) => doc.doc_id === docId)?.preview_key; - if (objectKey == undefined || objectKey == `` || objectKey == null) { - let ext = splitBaseAndExt(resourcePath).ext.toLowerCase(); + if (targetKey == undefined || targetKey == `` || targetKey == null) { let supportArr = ['hwp', 'hwpx', 'xls', 'xlsx', 'xlsm', 'ppt', 'pptx', 'doc', 'docx', 'dwg', 'dxf']; if (!supportArr.includes(ext)) { @@ -580,7 +597,7 @@ export async function renderDocViewer(resourcePath, docId) { } let generateDownloadUrlParams = { - objectKey: objectKey, + objectKey: targetKey, resourcePath: resourcePath, }; let generateDownloadUrlRes = await axios.post(`${docVars.path_name}/generateDownloadDocUrl`, generateDownloadUrlParams); @@ -589,7 +606,6 @@ export async function renderDocViewer(resourcePath, docId) { } //Presigned URL end - let ext = splitBaseAndExt(resourcePath).ext.toLowerCase(); let pdfArr = ['pdf', 'hwp', 'hwpx', 'xls', 'xlsx', 'xlsm', 'ppt', 'pptx', 'doc', 'docx', 'dwg', 'dxf']; let gsimArr = ['gsim']; let ifcArr = ['ifc']; @@ -601,7 +617,12 @@ export async function renderDocViewer(resourcePath, docId) { let threeArr = ['glb', 'gltf', 'obj', 'stl', 'fbx', '3dm']; let allArr = [...pdfArr, ...gsimArr, ...ifcArr, ...imageArr, ...videoArr, ...textArr, ...urlArr, ...zipArr, ...threeArr]; if (allArr.includes(ext)) { - if (pdfArr.includes(ext)) viewerPdf(PresignedUrl); + let pdfArrFiltered = pdfArr.filter(e => !excelDirectArr.includes(e) && !hwpDirectArr.includes(e) && !wordDirectArr.includes(e)); + + if (pdfArrFiltered.includes(ext)) viewerPdf(PresignedUrl); + if (excelDirectArr.includes(ext)) viewerExcel(PresignedUrl); + if (hwpDirectArr.includes(ext)) viewerHwp(PresignedUrl); + if (wordDirectArr.includes(ext)) viewerWord(PresignedUrl); if (gsimArr.includes(ext)) viewerGsim(PresignedUrl); if (ifcArr.includes(ext)) viewerIfc(PresignedUrl); if (threeArr.includes(ext)) viewer3d(PresignedUrl); @@ -642,6 +663,239 @@ export async function renderDocViewer(resourcePath, docId) { docVars.viewer.dataset.viewerType = 'convert'; } + // ----------------------------------------------------------------- + // 오픈소스 문서 직접 뷰잉 및 PDF 폴백 함수 정의 (Doc Viewer) + // ----------------------------------------------------------------- + function initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey) { + const btn = document.getElementById('doc-fallback-pdf-btn'); + if (!btn) return; + + // 이전 등록된 리스너 제거를 위해 복사 대체 + const newBtn = btn.cloneNode(true); + btn.parentNode.replaceChild(newBtn, btn); + + newBtn.style.display = 'flex'; + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + + newBtn.addEventListener('click', async () => { + newBtn.querySelector('.text').textContent = '로딩 중...'; + newBtn.style.pointerEvents = 'none'; + + try { + // 1. 최신 메타데이터 (preview_key) 조회 + if (!previewKey) { + await syncDocInfo(['official', 'attach', null]); + let selectedDoc = docVars.allDocData?.find((doc) => doc.doc_id === docId); + previewKey = selectedDoc?.preview_key; + objectKey = selectedDoc?.object_key; + } + + // 2. 만약 PDF 변환본이 아직 없다면 백엔드 변환 요청 + if (!previewKey) { + newBtn.querySelector('.text').textContent = 'PDF 변환 요청 중...'; + await convertDocPdf(resourcePath, docId); + alert('서버 측 PDF 변환이 시작되었습니다. 잠시 후 다시 클릭해 주세요.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + return; + } + + // 3. PDF용 Presigned URL 생성 + let generateDownloadUrlParams = { + objectKey: previewKey, + resourcePath: resourcePath + } + let generateDownloadUrlRes = await axios.post(`${docVars.path_name}/generateDownloadDocUrl`, generateDownloadUrlParams); + if (generateDownloadUrlRes.data.message == 'generateDownloadDocUrl_success') { + let pdfUrl = generateDownloadUrlRes.data.url; + + // 화면 초기화 및 PDF 뷰어 로드 + docVars.viewer = viewerWrap.querySelector('.viewer'); + docVars.viewer.innerHTML = ''; + newBtn.style.display = 'none'; + viewerPdf(pdfUrl); + } else { + alert('PDF 미리보기 주소 획득에 실패했습니다.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + } catch (err) { + console.error(err); + alert('PDF 변환 및 조회 중 오류가 발생했습니다.'); + newBtn.querySelector('.text').textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + }); + } + + function viewerExcel(presignedUrl) { + docVars.viewer.innerHTML = '
엑셀 데이터를 불러오는 중...
'; + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error(`HTTP ${res.status} ${res.statusText}`); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + docVars.viewer.innerHTML = ''; + + LuckyExcel.transformExcelToLucky(arrayBuffer, function(exportJson, luckysheetfile) { + if(exportJson.sheets == null || exportJson.sheets.length == 0) { + docVars.viewer.innerHTML = '
엑셀 데이터를 파싱하지 못했습니다. (xls 확장자는 지원하지 않습니다.)
'; + initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey); + return; + } + + if (window.luckysheet) { + window.luckysheet.destroy(); + } + + docVars.viewer.style.position = 'relative'; + const container = document.createElement('div'); + container.id = 'luckysheet_inner_doc'; + container.style.margin = '0px'; + container.style.padding = '0px'; + container.style.position = 'absolute'; + container.style.width = '100%'; + container.style.height = '100%'; + container.style.left = '0px'; + container.style.top = '0px'; + docVars.viewer.appendChild(container); + + try { + window.luckysheet.create({ + container: 'luckysheet_inner_doc', + data: exportJson.sheets, + title: exportJson.info.name || 'Excel Viewer', + lang: 'en', + showinfobar: false, + myFolderUrl: 'javascript:void(0)' + }); + } catch (createErr) { + console.error("Luckysheet create error: ", createErr); + docVars.viewer.innerHTML = `
+
엑셀 시트 생성 중 오류가 발생했습니다.
+
에러: ${createErr.message}
+
`; + } + }, function(err) { + console.error("Luckysheet transform error: ", err); + docVars.viewer.innerHTML = `
+
엑셀 파일을 읽는 중 오류가 발생했습니다.
+
상세: ${err.message || err}
+
`; + initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey); + }); + }) + .catch(err => { + console.error(err); + docVars.viewer.innerHTML = `
+
엑셀 파일을 불러오는데 실패했습니다.
+
에러: ${err.message}
+
`; + initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey); + }); + + docVars.viewer.dataset.viewerType = 'excel'; + } + + function viewerWord(presignedUrl) { + docVars.viewer.innerHTML = '
워드 문서를 불러오는 중...
'; + initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey); + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error('Word fetch failed'); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + docVars.viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const docxInner = document.createElement('div'); + docxInner.style.background = '#ffffff'; + docxInner.style.margin = '0 auto'; + docxInner.style.maxWidth = '800px'; + docxInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + docxInner.style.padding = '40px'; + + container.appendChild(docxInner); + docVars.viewer.appendChild(container); + + docx.renderAsync(arrayBuffer, docxInner) + .then(() => console.log("docx rendered")) + .catch(err => { + console.error(err); + docxInner.innerHTML = '
워드 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + }); + }) + .catch(err => { + console.error(err); + docVars.viewer.innerHTML = '
워드 문서를 불러오는데 실패했습니다.
'; + }); + + docVars.viewer.dataset.viewerType = 'word'; + } + + function viewerHwp(presignedUrl) { + docVars.viewer.innerHTML = '
한글 문서를 불러오는 중...
'; + initDocFallbackPdfButton(docId, resourcePath, objectKey, previewKey); + + fetch(presignedUrl) + .then(res => { + if (!res.ok) throw new Error('HWP fetch failed'); + return res.blob(); + }) + .then(blob => { + docVars.viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const hwpInner = document.createElement('div'); + hwpInner.style.background = '#ffffff'; + hwpInner.style.margin = '0 auto'; + hwpInner.style.maxWidth = '800px'; + hwpInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + hwpInner.style.padding = '40px'; + hwpInner.style.minHeight = '100%'; + + container.appendChild(hwpInner); + docVars.viewer.appendChild(container); + + const reader = new FileReader(); + reader.onload = (e) => { + const bstr = e.target.result; + try { + new hwp.Viewer(hwpInner, bstr); + } catch (err) { + console.error("hwp.js error: ", err); + hwpInner.innerHTML = '
한글 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + } + }; + reader.readAsBinaryString(blob); + }) + .catch(err => { + console.error(err); + docVars.viewer.innerHTML = '
한글 문서를 불러오는데 실패했습니다.
'; + }); + + docVars.viewer.dataset.viewerType = 'hwp'; + } + async function viewerPdf(PresignedUrl) { resetViewer(); @@ -945,6 +1199,16 @@ function resetViewer() { } } + if (docVars.viewer.dataset.viewerType == 'excel') { + if (window.luckysheet) { + try { + window.luckysheet.destroy(); + } catch (e) { + console.error("Luckysheet destroy error: ", e); + } + } + } + docVars.viewer.dataset.viewerType = ''; } diff --git a/views/main/jsm/popup.js b/views/main/jsm/popup.js index fb15092..a946d98 100644 --- a/views/main/jsm/popup.js +++ b/views/main/jsm/popup.js @@ -36,6 +36,18 @@ if(data && Object.keys(data).length>0 && (data.$type == 'text'|| data.type == 't case 'pdf': _openPdf(fullPath,data); break; + case 'xls': + case 'xlsx': + case 'xlsm': + _openExcel(fullPath, data); + break; + case 'docx': + _openDocx(fullPath, data); + break; + case 'hwp': + case 'hwpx': + _openHwp(fullPath, data); + break; case 'mp4': case 'mov': case 'webm': @@ -571,4 +583,265 @@ function _drawMeta(data){ container.innerHTML += line; } }) +} + +// ----------------------------------------------------------------- +// 오픈소스 문서 직접 뷰잉 및 PDF 폴백 함수 정의 +// ----------------------------------------------------------------- + +function initFallbackPdfButton(dataId, path_name, resourcePath) { + const btn = document.getElementById('fallback-pdf-btn'); + if (!btn) return; + + // 이전 등록된 리스너 제거를 위해 복사 대체 + const newBtn = btn.cloneNode(true); + btn.parentNode.replaceChild(newBtn, btn); + + newBtn.style.display = 'block'; + newBtn.textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + + newBtn.addEventListener('click', async () => { + newBtn.textContent = '로딩 중...'; + newBtn.style.pointerEvents = 'none'; + + try { + // 1. 파일 메타데이터 (popup_key) 조회 + let dataInfoRes = await fetch(`${path_name}/getDataInfo`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ params: { dataIdArr: [dataId], isRemoved: false, debug: "popup fallback" } }) + }); + let dataInfo = await dataInfoRes.json(); + let result = dataInfo.result; + if (Array.isArray(result)) result = result[0]; + let popupKey = result ? result.popup_key : null; + + // 2. 만약 PDF 변환본이 아직 없다면 백엔드 변환 요청 + if (!popupKey) { + newBtn.textContent = 'PDF 변환 요청 중...'; + await fetch(`${path_name}/convertPdf`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + params: { + dataId: dataId, + resourcePath: resourcePath, + userInfoString: JSON.stringify({ user_id: 'SYSTEM', user_nm: 'Viewer User' }), + objectKey: result.object_key, + storageType: result.storage_type + } + }) + }); + alert('서버 측 PDF 변환이 시작되었습니다. 잠시 후 다시 클릭해 주세요.'); + newBtn.textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + return; + } + + // 3. PDF용 Presigned URL 생성 + let downloadUrlRes = await fetch(`${path_name}/generateDownloadUrl`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ objectKey: popupKey, resourcePath: resourcePath }) + }); + let downloadUrlData = await downloadUrlRes.json(); + if (downloadUrlData.message === 'generateDownloadUrl_success') { + let pdfUrl = downloadUrlData.url; + + // 화면 초기화 및 PDF 뷰어 로드 + document.getElementById('popup_viewer').innerHTML = ''; + newBtn.style.display = 'none'; + _openPdf(pdfUrl, {}); + } else { + alert('PDF 미리보기 주소 획득에 실패했습니다.'); + newBtn.textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + } catch (e) { + console.error(e); + alert('PDF 변환 로드 과정 중 오류가 발생했습니다.'); + newBtn.textContent = 'PDF로 보기'; + newBtn.style.pointerEvents = 'auto'; + } + }); +} + +function _openExcel(path, data) { + const viewer = document.getElementById('popup_viewer'); + viewer.innerHTML = '
엑셀 데이터를 불러오는 중...
'; + + fetch(path) + .then(res => { + if (!res.ok) throw new Error(`HTTP ${res.status} ${res.statusText}`); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + viewer.innerHTML = ''; + + LuckyExcel.transformExcelToLucky(arrayBuffer, function(exportJson, luckysheetfile) { + if(exportJson.sheets == null || exportJson.sheets.length == 0) { + viewer.innerHTML = '
엑셀 데이터를 파싱하지 못했습니다. (xls 확장자는 지원하지 않습니다.)
'; + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + return; + } + + if (window.luckysheet) { + window.luckysheet.destroy(); + } + + viewer.style.position = 'relative'; + const container = document.createElement('div'); + container.id = 'luckysheet_inner'; + container.style.margin = '0px'; + container.style.padding = '0px'; + container.style.position = 'absolute'; + container.style.width = '100%'; + container.style.height = '100%'; + container.style.left = '0px'; + container.style.top = '0px'; + viewer.appendChild(container); + + try { + window.luckysheet.create({ + container: 'luckysheet_inner', + data: exportJson.sheets, + title: exportJson.info.name || document.title, + lang: 'en', + showinfobar: false, + myFolderUrl: 'javascript:void(0)' + }); + } catch (createErr) { + console.error("Luckysheet create error: ", createErr); + viewer.innerHTML = `
+
엑셀 시트 생성 중 오류가 발생했습니다.
+
에러: ${createErr.message}
+
`; + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + } + }, function(err) { + console.error("Luckysheet transform error: ", err); + viewer.innerHTML = `
+
엑셀 파일을 읽는 중 오류가 발생했습니다.
+
상세: ${err.message || err}
+
`; + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + }); + }) + .catch(err => { + console.error(err); + viewer.innerHTML = `
+
엑셀 파일을 불러오는데 실패했습니다.
+
에러: ${err.message}
+
`; + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + }); +} + +function _openDocx(path, data) { + const viewer = document.getElementById('popup_viewer'); + viewer.innerHTML = '
워드 문서를 불러오는 중...
'; + + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + + fetch(path) + .then(res => { + if (!res.ok) throw new Error('Word fetch failed'); + return res.arrayBuffer(); + }) + .then(arrayBuffer => { + viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const docxInner = document.createElement('div'); + docxInner.style.background = '#ffffff'; + docxInner.style.margin = '0 auto'; + docxInner.style.maxWidth = '800px'; + docxInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + docxInner.style.padding = '40px'; + + container.appendChild(docxInner); + viewer.appendChild(container); + + docx.renderAsync(arrayBuffer, docxInner) + .then(() => console.log("docx rendered")) + .catch(err => { + console.error(err); + docxInner.innerHTML = '
워드 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + }); + }) + .catch(err => { + console.error(err); + viewer.innerHTML = '
워드 문서를 불러오는데 실패했습니다.
'; + }); +} + +function _openHwp(path, data) { + const viewer = document.getElementById('popup_viewer'); + viewer.innerHTML = '
한글 문서를 불러오는 중...
'; + + if (dataId && path_name) { + initFallbackPdfButton(dataId, path_name, resourcePath); + } + + fetch(path) + .then(res => { + if (!res.ok) throw new Error('HWP fetch failed'); + return res.blob(); + }) + .then(blob => { + viewer.innerHTML = ''; + + const container = document.createElement('div'); + container.style.width = '100%'; + container.style.height = '100%'; + container.style.overflow = 'auto'; + container.style.padding = '20px'; + container.style.boxSizing = 'border-box'; + container.style.background = '#f5f5f5'; + + const hwpInner = document.createElement('div'); + hwpInner.style.background = '#ffffff'; + hwpInner.style.margin = '0 auto'; + hwpInner.style.maxWidth = '800px'; + hwpInner.style.boxShadow = '0 4px 10px rgba(0,0,0,0.1)'; + hwpInner.style.padding = '40px'; + hwpInner.style.minHeight = '100%'; + + container.appendChild(hwpInner); + viewer.appendChild(container); + + const reader = new FileReader(); + reader.onload = (e) => { + const bstr = e.target.result; + try { + new hwp.Viewer(hwpInner, bstr); + } catch (err) { + console.error("hwp.js error: ", err); + hwpInner.innerHTML = '
한글 문서 파싱 중 오류가 발생했습니다. 상단의 "PDF로 보기" 버튼을 이용해 주세요.
'; + } + }; + reader.readAsBinaryString(blob); + }) + .catch(err => { + console.error(err); + viewer.innerHTML = '
한글 문서를 불러오는데 실패했습니다.
'; + }); } \ No newline at end of file diff --git a/views/main/main.html b/views/main/main.html index a1c7528..17dcbfc 100644 --- a/views/main/main.html +++ b/views/main/main.html @@ -519,6 +519,9 @@
전체보기
+
@@ -3039,6 +3042,9 @@
전체보기
+
@@ -3464,5 +3470,21 @@ + + + + + + + + + + + + + + + + diff --git a/views/main/popup.html b/views/main/popup.html index eb86081..018c3eb 100644 --- a/views/main/popup.html +++ b/views/main/popup.html @@ -106,6 +106,9 @@
100%
+ + + @@ -116,6 +119,22 @@ + + + + + + + + + + + + + + + +