file2md 1.1.9 → 1.2.0
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -6
- package/dist/index.js.map +1 -1
- package/dist/parsers/hwp-parser.d.ts +20 -0
- package/dist/parsers/hwp-parser.d.ts.map +1 -0
- package/dist/parsers/hwp-parser.js +474 -0
- package/dist/parsers/hwp-parser.js.map +1 -0
- package/dist/parsers/pptx-parser.d.ts +3 -4
- package/dist/parsers/pptx-parser.d.ts.map +1 -1
- package/dist/parsers/pptx-parser.js +94 -81
- package/dist/parsers/pptx-parser.js.map +1 -1
- package/dist/types/interfaces.d.ts +2 -0
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/interfaces.js +3 -1
- package/dist/types/interfaces.js.map +1 -1
- package/dist/utils/libreoffice-converter.d.ts +33 -0
- package/dist/utils/libreoffice-converter.d.ts.map +1 -0
- package/dist/utils/libreoffice-converter.js +169 -0
- package/dist/utils/libreoffice-converter.js.map +1 -0
- package/dist/utils/libreoffice-detector.d.ts +57 -0
- package/dist/utils/libreoffice-detector.d.ts.map +1 -0
- package/dist/utils/libreoffice-detector.js +295 -0
- package/dist/utils/libreoffice-detector.js.map +1 -0
- package/dist/utils/pptx-visual-parser.d.ts +190 -0
- package/dist/utils/pptx-visual-parser.d.ts.map +1 -0
- package/dist/utils/pptx-visual-parser.js +648 -0
- package/dist/utils/pptx-visual-parser.js.map +1 -0
- package/package.json +11 -7
- package/dist/utils/slide-renderer.d.ts +0 -91
- package/dist/utils/slide-renderer.d.ts.map +0 -1
- package/dist/utils/slide-renderer.js +0 -540
- package/dist/utils/slide-renderer.js.map +0 -1
@@ -1,15 +1,13 @@
|
|
1
1
|
import type { Buffer } from 'node:buffer';
|
2
2
|
import type { ImageExtractor } from '../utils/image-extractor.js';
|
3
3
|
import type { ChartExtractor } from '../utils/chart-extractor.js';
|
4
|
-
import { type
|
4
|
+
import { type SlideLayout } from '../utils/pptx-visual-parser.js';
|
5
5
|
import type { ImageData, ChartData } from '../types/interfaces.js';
|
6
6
|
export interface PptxParseOptions {
|
7
7
|
readonly preserveLayout?: boolean;
|
8
8
|
readonly extractImages?: boolean;
|
9
9
|
readonly extractCharts?: boolean;
|
10
|
-
readonly
|
11
|
-
readonly slideRenderOptions?: SlideRenderOptions;
|
12
|
-
readonly outputDir?: string;
|
10
|
+
readonly useVisualParser?: boolean;
|
13
11
|
}
|
14
12
|
export interface PptxParseResult {
|
15
13
|
readonly markdown: string;
|
@@ -17,6 +15,7 @@ export interface PptxParseResult {
|
|
17
15
|
readonly charts: readonly ChartData[];
|
18
16
|
readonly slideCount: number;
|
19
17
|
readonly metadata: Record<string, unknown>;
|
18
|
+
readonly visualLayouts?: readonly SlideLayout[];
|
20
19
|
}
|
21
20
|
/**
|
22
21
|
* Parse PPTX buffer and convert to markdown with layout preservation
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pptx-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,
|
1
|
+
{"version":3,"file":"pptx-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEpF,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACjD;AAOD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAY1B"}
|
@@ -1,19 +1,13 @@
|
|
1
1
|
import JSZip from 'jszip';
|
2
2
|
import { parseStringPromise } from 'xml2js';
|
3
|
-
import
|
4
|
-
import { SlideRenderer } from '../utils/slide-renderer.js';
|
3
|
+
import { PptxVisualParser } from '../utils/pptx-visual-parser.js';
|
5
4
|
import { ParseError } from '../types/errors.js';
|
6
5
|
/**
|
7
6
|
* Parse PPTX buffer and convert to markdown with layout preservation
|
8
7
|
*/
|
9
8
|
export async function parsePptx(buffer, imageExtractor, chartExtractor, options = {}) {
|
10
9
|
try {
|
11
|
-
|
12
|
-
if (options.useSlideScreenshots !== false) {
|
13
|
-
return await parsePptxWithSlideScreenshots(buffer, imageExtractor, chartExtractor, options);
|
14
|
-
}
|
15
|
-
// Fallback to legacy layout parsing if slide screenshots are disabled
|
16
|
-
return await parsePptxLegacyMode(buffer, imageExtractor, chartExtractor, options);
|
10
|
+
return await parsePptxToMarkdown(buffer, imageExtractor, chartExtractor, options);
|
17
11
|
}
|
18
12
|
catch (error) {
|
19
13
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
@@ -21,55 +15,23 @@ export async function parsePptx(buffer, imageExtractor, chartExtractor, options
|
|
21
15
|
}
|
22
16
|
}
|
23
17
|
/**
|
24
|
-
*
|
18
|
+
* Parse PPTX to markdown without image generation
|
25
19
|
*/
|
26
|
-
async function
|
27
|
-
const
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
if (options.extractCharts !== false) {
|
39
|
-
try {
|
40
|
-
const zip = await JSZip.loadAsync(buffer);
|
41
|
-
extractedCharts = await chartExtractor.extractChartsFromZip(zip, 'ppt/');
|
42
|
-
}
|
43
|
-
catch {
|
44
|
-
// Ignore chart extraction errors
|
45
|
-
}
|
20
|
+
async function parsePptxToMarkdown(buffer, imageExtractor, chartExtractor, options) {
|
21
|
+
const zip = await JSZip.loadAsync(buffer);
|
22
|
+
// Enhanced visual parsing if requested (for text extraction)
|
23
|
+
let visualLayouts;
|
24
|
+
if (options.useVisualParser !== false) {
|
25
|
+
try {
|
26
|
+
const visualParser = new PptxVisualParser();
|
27
|
+
visualLayouts = await visualParser.parseVisualElements(buffer);
|
28
|
+
console.log(`Visual parser extracted ${visualLayouts.length} slide layouts`);
|
29
|
+
}
|
30
|
+
catch (visualError) {
|
31
|
+
console.warn('Visual parsing failed, continuing with standard processing:', visualError);
|
46
32
|
}
|
47
|
-
return {
|
48
|
-
markdown,
|
49
|
-
images: renderResult.slideImages,
|
50
|
-
charts: extractedCharts.map(chart => chart.data),
|
51
|
-
slideCount: renderResult.slideCount,
|
52
|
-
metadata: {
|
53
|
-
totalSlides: renderResult.slideCount,
|
54
|
-
hasImages: renderResult.slideImages.length > 0,
|
55
|
-
hasCharts: extractedCharts.length > 0,
|
56
|
-
renderMethod: 'slide-screenshots',
|
57
|
-
...renderResult.metadata
|
58
|
-
}
|
59
|
-
};
|
60
|
-
}
|
61
|
-
catch (error) {
|
62
|
-
// If slide rendering fails, fall back to legacy mode
|
63
|
-
console.warn('Slide screenshot rendering failed, falling back to legacy mode:', error);
|
64
|
-
return await parsePptxLegacyMode(buffer, imageExtractor, chartExtractor, options);
|
65
33
|
}
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Legacy layout parsing mode (fallback)
|
69
|
-
*/
|
70
|
-
async function parsePptxLegacyMode(buffer, imageExtractor, chartExtractor, options) {
|
71
|
-
const zip = await JSZip.loadAsync(buffer);
|
72
|
-
// Extract images first
|
34
|
+
// Extract embedded images metadata only (not for slide screenshots)
|
73
35
|
const extractedImages = options.extractImages !== false
|
74
36
|
? await imageExtractor.extractImagesFromZip(zip, 'ppt/')
|
75
37
|
: [];
|
@@ -91,18 +53,80 @@ async function parsePptxLegacyMode(buffer, imageExtractor, chartExtractor, optio
|
|
91
53
|
const bNum = parseInt(b.path.match(/slide(\d+)\.xml/)?.[1] || '0');
|
92
54
|
return aNum - bNum;
|
93
55
|
});
|
56
|
+
// Extract title from PPTX metadata
|
57
|
+
const title = await extractPptxTitle(buffer);
|
94
58
|
let markdown = '';
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
59
|
+
if (title) {
|
60
|
+
markdown += `# ${title}\n\n`;
|
61
|
+
}
|
62
|
+
// Use visual layouts for enhanced text extraction if available
|
63
|
+
if (visualLayouts && visualLayouts.length === slideFiles.length) {
|
64
|
+
for (let i = 0; i < slideFiles.length; i++) {
|
65
|
+
const slideFile = slideFiles[i];
|
66
|
+
const slideNumber = i + 1;
|
67
|
+
const layout = visualLayouts[i];
|
68
|
+
if (layout?.title) {
|
69
|
+
markdown += `## Slide ${slideNumber}: ${layout.title}\n\n`;
|
70
|
+
}
|
71
|
+
else {
|
72
|
+
markdown += `## Slide ${slideNumber}\n\n`;
|
73
|
+
}
|
74
|
+
// Extract text from visual layout
|
75
|
+
const textElements = layout.elements.filter(e => e.type === 'text');
|
76
|
+
if (textElements.length > 0) {
|
77
|
+
textElements.forEach((element) => {
|
78
|
+
if (element.type === 'text' && element.content?.text) {
|
79
|
+
const textContent = element.content.text.trim();
|
80
|
+
if (textContent) {
|
81
|
+
markdown += `${textContent}\n\n`;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
});
|
85
|
+
}
|
86
|
+
else {
|
87
|
+
// Fallback to XML extraction if no text in visual layout
|
88
|
+
const xmlContent = await slideFile.file.async('string');
|
89
|
+
const slideContent = await extractSlideTextContent(xmlContent);
|
90
|
+
if (slideContent.trim()) {
|
91
|
+
markdown += slideContent + '\n\n';
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
markdown += '*No content*\n\n';
|
95
|
+
}
|
96
|
+
}
|
97
|
+
// Add metadata about other elements
|
98
|
+
const imageElements = layout.elements.filter(e => e.type === 'image');
|
99
|
+
const chartElements = layout.elements.filter(e => e.type === 'chart');
|
100
|
+
const tableElements = layout.elements.filter(e => e.type === 'table');
|
101
|
+
if (imageElements.length > 0 || chartElements.length > 0 || tableElements.length > 0) {
|
102
|
+
markdown += '### Slide Elements\n\n';
|
103
|
+
if (imageElements.length > 0) {
|
104
|
+
markdown += `- ${imageElements.length} image(s)\n`;
|
105
|
+
}
|
106
|
+
if (chartElements.length > 0) {
|
107
|
+
markdown += `- ${chartElements.length} chart(s)\n`;
|
108
|
+
}
|
109
|
+
if (tableElements.length > 0) {
|
110
|
+
markdown += `- ${tableElements.length} table(s)\n`;
|
111
|
+
}
|
112
|
+
markdown += '\n';
|
113
|
+
}
|
103
114
|
}
|
104
|
-
|
105
|
-
|
115
|
+
}
|
116
|
+
else {
|
117
|
+
// Standard text extraction without visual layouts
|
118
|
+
for (let i = 0; i < slideFiles.length; i++) {
|
119
|
+
const slideFile = slideFiles[i];
|
120
|
+
const slideNumber = i + 1;
|
121
|
+
markdown += `## Slide ${slideNumber}\n\n`;
|
122
|
+
const xmlContent = await slideFile.file.async('string');
|
123
|
+
const slideContent = await extractSlideTextContent(xmlContent);
|
124
|
+
if (slideContent.trim()) {
|
125
|
+
markdown += slideContent + '\n\n';
|
126
|
+
}
|
127
|
+
else {
|
128
|
+
markdown += '*No content*\n\n';
|
129
|
+
}
|
106
130
|
}
|
107
131
|
}
|
108
132
|
return {
|
@@ -114,7 +138,8 @@ async function parsePptxLegacyMode(buffer, imageExtractor, chartExtractor, optio
|
|
114
138
|
totalSlides: slideFiles.length,
|
115
139
|
hasImages: extractedImages.length > 0,
|
116
140
|
hasCharts: extractedCharts.length > 0,
|
117
|
-
renderMethod: '
|
141
|
+
renderMethod: 'text-extraction',
|
142
|
+
hasVisualLayouts: visualLayouts !== undefined
|
118
143
|
}
|
119
144
|
};
|
120
145
|
}
|
@@ -141,9 +166,9 @@ async function extractPptxTitle(buffer) {
|
|
141
166
|
return undefined;
|
142
167
|
}
|
143
168
|
/**
|
144
|
-
*
|
169
|
+
* Extract text content from slide XML
|
145
170
|
*/
|
146
|
-
async function
|
171
|
+
async function extractSlideTextContent(xmlContent) {
|
147
172
|
try {
|
148
173
|
const result = await parseStringPromise(xmlContent);
|
149
174
|
let markdown = '';
|
@@ -182,23 +207,11 @@ async function extractLegacySlideContent(xmlContent, imageExtractor, extractedIm
|
|
182
207
|
}
|
183
208
|
// Extract all text content
|
184
209
|
const textContent = extractText(result).trim();
|
185
|
-
|
186
|
-
markdown += textContent + '\n\n';
|
187
|
-
}
|
188
|
-
// Add any images for this slide
|
189
|
-
const slideImages = extractedImages.filter(img => img.originalPath.includes(`slide${slideNumber}`) ||
|
190
|
-
(slideNumber === 1 && img.originalPath.includes('media/')));
|
191
|
-
for (const img of slideImages) {
|
192
|
-
if (img.savedPath) {
|
193
|
-
const filename = path.basename(img.savedPath);
|
194
|
-
markdown += imageExtractor.getImageMarkdown(`Slide ${slideNumber} Image`, filename) + '\n\n';
|
195
|
-
}
|
196
|
-
}
|
197
|
-
return markdown.trim();
|
210
|
+
return textContent;
|
198
211
|
}
|
199
212
|
catch (error) {
|
200
213
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
201
|
-
throw new ParseError('PPTX', `Failed to extract
|
214
|
+
throw new ParseError('PPTX', `Failed to extract text content from slide: ${message}`, error);
|
202
215
|
}
|
203
216
|
}
|
204
217
|
//# sourceMappingURL=pptx-parser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"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"}
|
@@ -225,6 +225,8 @@ export declare const SUPPORTED_MIME_TYPES: {
|
|
225
225
|
readonly DOCX: "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
226
226
|
readonly XLSX: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
227
227
|
readonly PPTX: "application/vnd.openxmlformats-officedocument.presentationml.presentation";
|
228
|
+
readonly HWP: "application/x-hwp";
|
229
|
+
readonly HWPX: "application/x-hwpx";
|
228
230
|
};
|
229
231
|
export type SupportedMimeType = typeof SUPPORTED_MIME_TYPES[keyof typeof SUPPORTED_MIME_TYPES];
|
230
232
|
//# sourceMappingURL=interfaces.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/types/interfaces.js
CHANGED
@@ -5,6 +5,8 @@ export const SUPPORTED_MIME_TYPES = {
|
|
5
5
|
PDF: 'application/pdf',
|
6
6
|
DOCX: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
7
7
|
XLSX: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
8
|
-
PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
|
8
|
+
PPTX: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
9
|
+
HWP: 'application/x-hwp',
|
10
|
+
HWPX: 'application/x-hwpx'
|
9
11
|
};
|
10
12
|
//# sourceMappingURL=interfaces.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"AA8OA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,yEAAyE;IAC/E,IAAI,EAAE,mEAAmE;IACzE,IAAI,EAAE,2EAA2E;
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/types/interfaces.ts"],"names":[],"mappings":"AA8OA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,yEAAyE;IAC/E,IAAI,EAAE,mEAAmE;IACzE,IAAI,EAAE,2EAA2E;IACjF,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,oBAAoB;CAClB,CAAC"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { EventEmitter } from 'events';
|
2
|
+
export interface ConversionOptions {
|
3
|
+
quality?: 'low' | 'medium' | 'high' | 'maximum';
|
4
|
+
timeout?: number;
|
5
|
+
outputFormat?: string;
|
6
|
+
additionalArgs?: string[];
|
7
|
+
}
|
8
|
+
export interface ConversionProgress {
|
9
|
+
stage: 'starting' | 'converting' | 'completed' | 'error';
|
10
|
+
percentage?: number;
|
11
|
+
message?: string;
|
12
|
+
}
|
13
|
+
export declare class LibreOfficeConverter extends EventEmitter {
|
14
|
+
private readonly detector;
|
15
|
+
constructor();
|
16
|
+
/**
|
17
|
+
* Convert PPTX to PDF with enhanced options
|
18
|
+
*/
|
19
|
+
convertToPdf(inputBuffer: Buffer, options?: ConversionOptions): Promise<Buffer>;
|
20
|
+
/**
|
21
|
+
* Get PDF filter string based on quality setting
|
22
|
+
*/
|
23
|
+
private getPdfFilter;
|
24
|
+
/**
|
25
|
+
* Execute LibreOffice conversion with timeout and progress tracking
|
26
|
+
*/
|
27
|
+
private executeConversion;
|
28
|
+
/**
|
29
|
+
* Convert with progress callback
|
30
|
+
*/
|
31
|
+
convertWithProgress(inputBuffer: Buffer, options?: ConversionOptions, onProgress?: (progress: ConversionProgress) => void): Promise<Buffer>;
|
32
|
+
}
|
33
|
+
//# sourceMappingURL=libreoffice-converter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"libreoffice-converter.d.ts","sourceRoot":"","sources":["../../src/utils/libreoffice-converter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;;IAO/C;;OAEG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC;IA0ElB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwEzB;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,EAC/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC;CAanB"}
|
@@ -0,0 +1,169 @@
|
|
1
|
+
import { spawn } from 'child_process';
|
2
|
+
import path from 'path';
|
3
|
+
import fs from 'fs/promises';
|
4
|
+
import { tmpdir } from 'os';
|
5
|
+
import { randomBytes } from 'crypto';
|
6
|
+
import { EventEmitter } from 'events';
|
7
|
+
import { LibreOfficeDetector } from './libreoffice-detector.js';
|
8
|
+
export class LibreOfficeConverter extends EventEmitter {
|
9
|
+
detector;
|
10
|
+
constructor() {
|
11
|
+
super();
|
12
|
+
this.detector = LibreOfficeDetector.getInstance();
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Convert PPTX to PDF with enhanced options
|
16
|
+
*/
|
17
|
+
async convertToPdf(inputBuffer, options = {}) {
|
18
|
+
const { quality = 'maximum', timeout = 30000, additionalArgs = [] } = options;
|
19
|
+
// Check LibreOffice installation
|
20
|
+
const info = await this.detector.checkLibreOfficeInstallation();
|
21
|
+
if (!info.installed || !info.path) {
|
22
|
+
throw new Error('LibreOffice is not installed');
|
23
|
+
}
|
24
|
+
// Create temporary files
|
25
|
+
const tempId = randomBytes(8).toString('hex');
|
26
|
+
const tempDir = path.join(tmpdir(), `libreoffice-${tempId}`);
|
27
|
+
const inputPath = path.join(tempDir, 'input.pptx');
|
28
|
+
const outputDir = tempDir;
|
29
|
+
try {
|
30
|
+
// Create temp directory and save input file
|
31
|
+
await fs.mkdir(tempDir, { recursive: true });
|
32
|
+
await fs.writeFile(inputPath, inputBuffer);
|
33
|
+
this.emit('progress', {
|
34
|
+
stage: 'starting',
|
35
|
+
percentage: 0,
|
36
|
+
message: 'Initializing LibreOffice conversion...'
|
37
|
+
});
|
38
|
+
// Build conversion arguments
|
39
|
+
const args = [
|
40
|
+
'--headless',
|
41
|
+
'--invisible',
|
42
|
+
'--nodefault',
|
43
|
+
'--nolockcheck',
|
44
|
+
'--nologo',
|
45
|
+
'--norestore',
|
46
|
+
'--convert-to',
|
47
|
+
this.getPdfFilter(quality),
|
48
|
+
'--outdir',
|
49
|
+
outputDir,
|
50
|
+
...additionalArgs,
|
51
|
+
inputPath
|
52
|
+
];
|
53
|
+
// Execute conversion
|
54
|
+
const outputPath = await this.executeConversion(info.path, args, timeout);
|
55
|
+
// Read the output PDF
|
56
|
+
const pdfBuffer = await fs.readFile(outputPath);
|
57
|
+
this.emit('progress', {
|
58
|
+
stage: 'completed',
|
59
|
+
percentage: 100,
|
60
|
+
message: 'Conversion completed successfully'
|
61
|
+
});
|
62
|
+
return pdfBuffer;
|
63
|
+
}
|
64
|
+
finally {
|
65
|
+
// Cleanup temporary files
|
66
|
+
try {
|
67
|
+
await fs.rm(tempDir, { recursive: true, force: true });
|
68
|
+
}
|
69
|
+
catch {
|
70
|
+
// Ignore cleanup errors
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
/**
|
75
|
+
* Get PDF filter string based on quality setting
|
76
|
+
*/
|
77
|
+
getPdfFilter(quality) {
|
78
|
+
switch (quality) {
|
79
|
+
case 'maximum':
|
80
|
+
return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"300"},"UseTaggedPDF":{"type":"boolean","value":"true"},"SelectPdfVersion":{"type":"long","value":"0"},"Quality":{"type":"long","value":"100"}}';
|
81
|
+
case 'high':
|
82
|
+
return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"200"},"Quality":{"type":"long","value":"90"}}';
|
83
|
+
case 'medium':
|
84
|
+
return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"150"},"Quality":{"type":"long","value":"80"}}';
|
85
|
+
case 'low':
|
86
|
+
return 'pdf:writer_pdf_Export:{"MaxImageResolution":{"type":"long","value":"100"},"Quality":{"type":"long","value":"70"}}';
|
87
|
+
default:
|
88
|
+
return 'pdf:writer_pdf_Export';
|
89
|
+
}
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Execute LibreOffice conversion with timeout and progress tracking
|
93
|
+
*/
|
94
|
+
executeConversion(sofficePath, args, timeout) {
|
95
|
+
return new Promise((resolve, reject) => {
|
96
|
+
const process = spawn(sofficePath, args);
|
97
|
+
let outputPath = null;
|
98
|
+
let stderr = '';
|
99
|
+
let timedOut = false;
|
100
|
+
// Set up timeout
|
101
|
+
const timeoutHandle = setTimeout(() => {
|
102
|
+
timedOut = true;
|
103
|
+
process.kill('SIGTERM');
|
104
|
+
reject(new Error(`Conversion timed out after ${timeout}ms`));
|
105
|
+
}, timeout);
|
106
|
+
// Track progress
|
107
|
+
const progressInterval = setInterval(() => {
|
108
|
+
if (!timedOut && outputPath === null) {
|
109
|
+
this.emit('progress', {
|
110
|
+
stage: 'converting',
|
111
|
+
percentage: 50,
|
112
|
+
message: 'Converting document...'
|
113
|
+
});
|
114
|
+
}
|
115
|
+
}, 1000);
|
116
|
+
process.stderr.on('data', (data) => {
|
117
|
+
stderr += data.toString();
|
118
|
+
});
|
119
|
+
process.on('close', async (code) => {
|
120
|
+
clearTimeout(timeoutHandle);
|
121
|
+
clearInterval(progressInterval);
|
122
|
+
if (timedOut) {
|
123
|
+
return; // Already rejected
|
124
|
+
}
|
125
|
+
if (code !== 0) {
|
126
|
+
reject(new Error(`LibreOffice exited with code ${code}: ${stderr}`));
|
127
|
+
return;
|
128
|
+
}
|
129
|
+
// Find the output file
|
130
|
+
try {
|
131
|
+
const tempDir = path.dirname(args[args.length - 1]);
|
132
|
+
const files = await fs.readdir(tempDir);
|
133
|
+
const pdfFile = files.find(f => f.endsWith('.pdf'));
|
134
|
+
if (!pdfFile) {
|
135
|
+
reject(new Error('No PDF output file found'));
|
136
|
+
return;
|
137
|
+
}
|
138
|
+
outputPath = path.join(tempDir, pdfFile);
|
139
|
+
resolve(outputPath);
|
140
|
+
}
|
141
|
+
catch (error) {
|
142
|
+
reject(error);
|
143
|
+
}
|
144
|
+
});
|
145
|
+
process.on('error', (error) => {
|
146
|
+
clearTimeout(timeoutHandle);
|
147
|
+
clearInterval(progressInterval);
|
148
|
+
reject(error);
|
149
|
+
});
|
150
|
+
});
|
151
|
+
}
|
152
|
+
/**
|
153
|
+
* Convert with progress callback
|
154
|
+
*/
|
155
|
+
async convertWithProgress(inputBuffer, options = {}, onProgress) {
|
156
|
+
if (onProgress) {
|
157
|
+
this.on('progress', onProgress);
|
158
|
+
}
|
159
|
+
try {
|
160
|
+
return await this.convertToPdf(inputBuffer, options);
|
161
|
+
}
|
162
|
+
finally {
|
163
|
+
if (onProgress) {
|
164
|
+
this.removeListener('progress', onProgress);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
//# sourceMappingURL=libreoffice-converter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"libreoffice-converter.js","sourceRoot":"","sources":["../../src/utils/libreoffice-converter.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
export interface LibreOfficeInfo {
|
2
|
+
installed: boolean;
|
3
|
+
path?: string;
|
4
|
+
version?: string;
|
5
|
+
error?: string;
|
6
|
+
}
|
7
|
+
export declare class LibreOfficeDetector {
|
8
|
+
private static instance;
|
9
|
+
private cachedInfo?;
|
10
|
+
private constructor();
|
11
|
+
static getInstance(): LibreOfficeDetector;
|
12
|
+
/**
|
13
|
+
* Check if LibreOffice is installed and get its information
|
14
|
+
*/
|
15
|
+
checkLibreOfficeInstallation(): Promise<LibreOfficeInfo>;
|
16
|
+
/**
|
17
|
+
* Detect LibreOffice based on platform
|
18
|
+
*/
|
19
|
+
private detectLibreOffice;
|
20
|
+
/**
|
21
|
+
* Detect LibreOffice on Windows
|
22
|
+
*/
|
23
|
+
private detectWindows;
|
24
|
+
/**
|
25
|
+
* Detect LibreOffice on macOS
|
26
|
+
*/
|
27
|
+
private detectMacOS;
|
28
|
+
/**
|
29
|
+
* Detect LibreOffice on Linux
|
30
|
+
*/
|
31
|
+
private detectLinux;
|
32
|
+
/**
|
33
|
+
* Get LibreOffice version
|
34
|
+
*/
|
35
|
+
private getVersion;
|
36
|
+
/**
|
37
|
+
* Check if file exists
|
38
|
+
*/
|
39
|
+
private fileExists;
|
40
|
+
/**
|
41
|
+
* Check if LibreOffice version meets minimum requirement
|
42
|
+
*/
|
43
|
+
isVersionSupported(version?: string): boolean;
|
44
|
+
/**
|
45
|
+
* Get installation instructions for current platform
|
46
|
+
*/
|
47
|
+
getInstallationInstructions(): string;
|
48
|
+
/**
|
49
|
+
* Get download URL for current platform
|
50
|
+
*/
|
51
|
+
getDownloadUrl(): string;
|
52
|
+
/**
|
53
|
+
* Clear cached LibreOffice info
|
54
|
+
*/
|
55
|
+
clearCache(): void;
|
56
|
+
}
|
57
|
+
//# sourceMappingURL=libreoffice-detector.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"libreoffice-detector.d.ts","sourceRoot":"","sources":["../../src/utils/libreoffice-detector.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,eAAe,CAAC;IAmB9D;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;YACW,aAAa;IA0C3B;;OAEG;YACW,WAAW;IAyCzB;;OAEG;YACW,WAAW;IA0CzB;;OAEG;YACW,UAAU;IAUxB;;OAEG;YACW,UAAU;IASxB;;OAEG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;IAW7C;;OAEG;IACH,2BAA2B,IAAI,MAAM;IAoDrC;;OAEG;IACH,cAAc,IAAI,MAAM;IAuBxB;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|