- .agent/, .claude/, .vscode/ 설정 파일 - design/ 디자인 리소스 - reports/, research/ 분석 문서 - testcase/ 테스트 케이스 문서 - db_sync_chandj.bat, sam.code-workspace Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
119 lines
2.8 KiB
JavaScript
119 lines
2.8 KiB
JavaScript
/**
|
|
* 간단한 테스트 버전 - 색상 이슈 해결용
|
|
*/
|
|
|
|
const fs = require('fs').promises;
|
|
const PptxGenJS = require('pptxgenjs');
|
|
|
|
async function createSimplePPTX() {
|
|
const pptx = new PptxGenJS();
|
|
pptx.layout = 'LAYOUT_16x9';
|
|
|
|
// 1. 표지 슬라이드
|
|
const slide1 = pptx.addSlide();
|
|
slide1.addText('스마트 재고 관리 시스템', {
|
|
x: 1, y: 3, w: 8, h: 1.5,
|
|
fontSize: 36,
|
|
bold: true,
|
|
color: '2E7D32',
|
|
align: 'center'
|
|
});
|
|
|
|
slide1.addText('시스템 기획 및 설계서', {
|
|
x: 1, y: 4.8, w: 8, h: 0.8,
|
|
fontSize: 20,
|
|
color: '666666',
|
|
align: 'center'
|
|
});
|
|
|
|
slide1.addText('2025.01.03\n\n테크솔루션', {
|
|
x: 7.5, y: 7, w: 2.5, h: 1.5,
|
|
fontSize: 12,
|
|
color: '333333',
|
|
align: 'right'
|
|
});
|
|
|
|
// 2. 기능 목록 슬라이드
|
|
const slide2 = pptx.addSlide();
|
|
slide2.addText('주요 기능', {
|
|
x: 0.5, y: 0.5, w: 9, h: 0.8,
|
|
fontSize: 24,
|
|
bold: true,
|
|
color: '333333'
|
|
});
|
|
|
|
const features = [
|
|
'1. 대시보드 - 실시간 재고 현황 모니터링',
|
|
'2. 재고 관리 - 상품 등록 및 정보 관리',
|
|
'3. 발주 관리 - 자동 발주 시스템',
|
|
'4. 매출 분석 - 일/월/년 매출 리포트',
|
|
'5. 사용자 관리 - 직원 계정 및 권한 관리'
|
|
];
|
|
|
|
features.forEach((feature, index) => {
|
|
slide2.addText(feature, {
|
|
x: 1, y: 1.5 + index * 0.8, w: 8, h: 0.6,
|
|
fontSize: 16,
|
|
color: '333333'
|
|
});
|
|
});
|
|
|
|
// 3. 간단한 상세 슬라이드
|
|
const slide3 = pptx.addSlide();
|
|
|
|
// 헤더 정보
|
|
slide3.addText('대시보드 기능', {
|
|
x: 0.5, y: 0.2, w: 9, h: 0.6,
|
|
fontSize: 20,
|
|
bold: true,
|
|
color: '333333'
|
|
});
|
|
|
|
// 와이어프레임 영역
|
|
slide3.addShape('rect', {
|
|
x: 0.5, y: 1, w: 5.5, h: 5,
|
|
fill: { color: 'F5F5F5' },
|
|
line: { color: '999999', width: 1 }
|
|
});
|
|
|
|
slide3.addText('대시보드 화면\n와이어프레임', {
|
|
x: 2.5, y: 3, w: 2, h: 1,
|
|
fontSize: 14,
|
|
align: 'center',
|
|
color: '666666'
|
|
});
|
|
|
|
// 설명 영역
|
|
slide3.addText('기능 설명:', {
|
|
x: 6.5, y: 1, w: 3, h: 0.5,
|
|
fontSize: 16,
|
|
bold: true,
|
|
color: '333333'
|
|
});
|
|
|
|
const descriptions = [
|
|
'1. 실시간 재고 현황 모니터링',
|
|
'2. 매출 통계 및 트렌드 분석',
|
|
'3. 알림 센터 및 업무 요약'
|
|
];
|
|
|
|
descriptions.forEach((desc, index) => {
|
|
slide3.addText(desc, {
|
|
x: 6.5, y: 1.8 + index * 0.6, w: 3, h: 0.5,
|
|
fontSize: 12,
|
|
color: '333333'
|
|
});
|
|
});
|
|
|
|
// 파일 저장
|
|
await pptx.writeFile({ fileName: 'pptx/simple_test.pptx' });
|
|
console.log('✅ 간단한 테스트 PPTX 생성 완료: pptx/simple_test.pptx');
|
|
}
|
|
|
|
if (require.main === module) {
|
|
fs.mkdir('pptx', { recursive: true })
|
|
.then(() => createSimplePPTX())
|
|
.catch(console.error);
|
|
}
|
|
|
|
module.exports = { createSimplePPTX }; |