file2md 1.1.3 → 1.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmI1G;AAGD,mBAAmB,kBAAkB,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyI1G;AAGD,mBAAmB,kBAAkB,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -102,7 +102,13 @@ export async function convert(input, options = {}) {
102
102
  break;
103
103
  }
104
104
  case SUPPORTED_MIME_TYPES.PPTX: {
105
- const result = await parsePptx(buffer, imageExtractor, chartExtractor, { preserveLayout, extractImages, extractCharts });
105
+ const result = await parsePptx(buffer, imageExtractor, chartExtractor, {
106
+ preserveLayout,
107
+ extractImages,
108
+ extractCharts,
109
+ outputDir: imageDir,
110
+ useSlideScreenshots: true // Enable slide screenshots by default
111
+ });
106
112
  markdown = result.markdown;
107
113
  images = result.images || [];
108
114
  charts = result.charts || [];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
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 SlideRenderOptions } from '../utils/slide-renderer.js';
4
5
  import type { ImageData, ChartData } from '../types/interfaces.js';
5
6
  export interface PptxParseOptions {
6
7
  readonly preserveLayout?: boolean;
7
8
  readonly extractImages?: boolean;
8
9
  readonly extractCharts?: boolean;
10
+ readonly useSlideScreenshots?: boolean;
11
+ readonly slideRenderOptions?: SlideRenderOptions;
12
+ readonly outputDir?: string;
9
13
  }
10
14
  export interface PptxParseResult {
11
15
  readonly markdown: string;
@@ -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;AAGlE,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EAIV,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;CAClC;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;CAC5C;AAkBD;;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,CAwE1B"}
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,EAAiB,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,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,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;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;CAC5C;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,CAuB1B"}
@@ -1,267 +1,204 @@
1
1
  import JSZip from 'jszip';
2
2
  import { parseStringPromise } from 'xml2js';
3
3
  import path from 'node:path';
4
- import { LayoutParser } from '../utils/layout-parser.js';
4
+ import { SlideRenderer } from '../utils/slide-renderer.js';
5
5
  import { ParseError } from '../types/errors.js';
6
6
  /**
7
7
  * Parse PPTX buffer and convert to markdown with layout preservation
8
8
  */
9
9
  export async function parsePptx(buffer, imageExtractor, chartExtractor, options = {}) {
10
10
  try {
11
- const zip = await JSZip.loadAsync(buffer);
12
- // Extract images first
13
- const extractedImages = options.extractImages !== false
14
- ? await imageExtractor.extractImagesFromZip(zip, 'ppt/')
15
- : [];
16
- // Extract charts if enabled
17
- const extractedCharts = options.extractCharts !== false
18
- ? await chartExtractor.extractChartsFromZip(zip, 'ppt/')
19
- : [];
20
- // Initialize layout parser
21
- const layoutParser = new LayoutParser();
22
- const slideFiles = [];
23
- zip.forEach((relativePath, file) => {
24
- if (relativePath.startsWith('ppt/slides/slide') && relativePath.endsWith('.xml')) {
25
- slideFiles.push({
26
- path: relativePath,
27
- file: file
28
- });
29
- }
30
- });
31
- slideFiles.sort((a, b) => {
32
- const aNum = parseInt(a.path.match(/slide(\d+)\.xml/)?.[1] || '0');
33
- const bNum = parseInt(b.path.match(/slide(\d+)\.xml/)?.[1] || '0');
34
- return aNum - bNum;
35
- });
36
- let markdown = '';
37
- for (let i = 0; i < slideFiles.length; i++) {
38
- const slideFile = slideFiles[i];
39
- const slideNumber = i + 1;
40
- markdown += `## Slide ${slideNumber}\n\n`;
41
- const xmlContent = await slideFile.file.async('string');
42
- const slideContent = await extractAdvancedSlideContent(xmlContent, imageExtractor, extractedImages, slideNumber, layoutParser);
43
- if (slideContent.trim()) {
44
- markdown += slideContent + '\n\n';
11
+ // Check if slide screenshots are requested (new default behavior)
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);
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : 'Unknown error';
20
+ throw new ParseError('PPTX', message, error);
21
+ }
22
+ }
23
+ /**
24
+ * New slide screenshot-based parsing (recommended)
25
+ */
26
+ async function parsePptxWithSlideScreenshots(buffer, imageExtractor, chartExtractor, options) {
27
+ const outputDir = options.outputDir || './images';
28
+ const slideRenderer = new SlideRenderer(outputDir);
29
+ try {
30
+ // Convert PPTX to slide images
31
+ const renderResult = await slideRenderer.renderSlidesToImages(buffer, options.slideRenderOptions);
32
+ // Extract title from PPTX metadata for better markdown generation
33
+ const title = await extractPptxTitle(buffer);
34
+ // Generate markdown with slide images
35
+ const markdown = slideRenderer.generateSlideMarkdown(renderResult.slideImages, title);
36
+ // Still extract charts if requested (need to load zip for chart extraction)
37
+ let extractedCharts = [];
38
+ if (options.extractCharts !== false) {
39
+ try {
40
+ const zip = await JSZip.loadAsync(buffer);
41
+ extractedCharts = await chartExtractor.extractChartsFromZip(zip, 'ppt/');
45
42
  }
46
- else {
47
- markdown += '*No content*\n\n';
43
+ catch {
44
+ // Ignore chart extraction errors
48
45
  }
49
46
  }
50
47
  return {
51
- markdown: markdown.trim(),
52
- images: extractedImages,
48
+ markdown,
49
+ images: renderResult.slideImages,
53
50
  charts: extractedCharts.map(chart => chart.data),
54
- slideCount: slideFiles.length,
51
+ slideCount: renderResult.slideCount,
55
52
  metadata: {
56
- totalSlides: slideFiles.length,
57
- hasImages: extractedImages.length > 0,
58
- hasCharts: extractedCharts.length > 0
53
+ totalSlides: renderResult.slideCount,
54
+ hasImages: renderResult.slideImages.length > 0,
55
+ hasCharts: extractedCharts.length > 0,
56
+ renderMethod: 'slide-screenshots',
57
+ ...renderResult.metadata
59
58
  }
60
59
  };
61
60
  }
62
61
  catch (error) {
63
- const message = error instanceof Error ? error.message : 'Unknown error';
64
- throw new ParseError('PPTX', message, 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
65
  }
66
66
  }
67
- async function extractAdvancedSlideContent(xmlContent, imageExtractor, extractedImages, slideNumber, layoutParser) {
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
73
+ const extractedImages = options.extractImages !== false
74
+ ? await imageExtractor.extractImagesFromZip(zip, 'ppt/')
75
+ : [];
76
+ // Extract charts if enabled
77
+ const extractedCharts = options.extractCharts !== false
78
+ ? await chartExtractor.extractChartsFromZip(zip, 'ppt/')
79
+ : [];
80
+ const slideFiles = [];
81
+ zip.forEach((relativePath, file) => {
82
+ if (relativePath.startsWith('ppt/slides/slide') && relativePath.endsWith('.xml')) {
83
+ slideFiles.push({
84
+ path: relativePath,
85
+ file: file
86
+ });
87
+ }
88
+ });
89
+ slideFiles.sort((a, b) => {
90
+ const aNum = parseInt(a.path.match(/slide(\d+)\.xml/)?.[1] || '0');
91
+ const bNum = parseInt(b.path.match(/slide(\d+)\.xml/)?.[1] || '0');
92
+ return aNum - bNum;
93
+ });
94
+ let markdown = '';
95
+ for (let i = 0; i < slideFiles.length; i++) {
96
+ const slideFile = slideFiles[i];
97
+ const slideNumber = i + 1;
98
+ markdown += `## Slide ${slideNumber}\n\n`;
99
+ const xmlContent = await slideFile.file.async('string');
100
+ const slideContent = await extractLegacySlideContent(xmlContent, imageExtractor, extractedImages, slideNumber);
101
+ if (slideContent.trim()) {
102
+ markdown += slideContent + '\n\n';
103
+ }
104
+ else {
105
+ markdown += '*No content*\n\n';
106
+ }
107
+ }
108
+ return {
109
+ markdown: markdown.trim(),
110
+ images: extractedImages,
111
+ charts: extractedCharts.map(chart => chart.data),
112
+ slideCount: slideFiles.length,
113
+ metadata: {
114
+ totalSlides: slideFiles.length,
115
+ hasImages: extractedImages.length > 0,
116
+ hasCharts: extractedCharts.length > 0,
117
+ renderMethod: 'legacy-layout-parsing'
118
+ }
119
+ };
120
+ }
121
+ /**
122
+ * Extract PPTX title from document properties
123
+ */
124
+ async function extractPptxTitle(buffer) {
125
+ try {
126
+ const zip = await JSZip.loadAsync(buffer);
127
+ const corePropsFile = zip.file('docProps/core.xml');
128
+ if (corePropsFile) {
129
+ const corePropsContent = await corePropsFile.async('string');
130
+ const result = await parseStringPromise(corePropsContent);
131
+ // Try to extract title from core properties
132
+ const title = result?.['cp:coreProperties']?.[0]?.['dc:title']?.[0];
133
+ if (title && typeof title === 'string' && title.trim()) {
134
+ return title.trim();
135
+ }
136
+ }
137
+ }
138
+ catch {
139
+ // Ignore errors and return undefined
140
+ }
141
+ return undefined;
142
+ }
143
+ /**
144
+ * Legacy slide content extraction (simplified version)
145
+ */
146
+ async function extractLegacySlideContent(xmlContent, imageExtractor, extractedImages, slideNumber) {
68
147
  try {
69
148
  const result = await parseStringPromise(xmlContent);
70
- const elements = [];
71
- let imageCount = 0;
72
- // Extract all shapes and their positions
73
- function extractShapes(obj, parentPos = { x: 0, y: 0 }) {
149
+ let markdown = '';
150
+ // Simple text extraction function
151
+ function extractText(obj) {
152
+ let text = '';
74
153
  if (typeof obj === 'object' && obj !== null) {
75
154
  if (Array.isArray(obj)) {
76
155
  for (const item of obj) {
77
- extractShapes(item, parentPos);
156
+ text += extractText(item);
78
157
  }
79
158
  }
80
159
  else {
81
- // Check for shape positioning
82
- let position = { ...parentPos };
83
- if (obj['a:off']?.[0]?.$) {
84
- position.x = parseInt(obj['a:off'][0].$.x) || 0;
85
- position.y = parseInt(obj['a:off'][0].$.y) || 0;
86
- }
87
- // Check for text content in shapes
160
+ // Extract text content
88
161
  if (obj['a:t']) {
89
- const textElement = {
90
- type: 'text',
91
- content: '',
92
- position: position
93
- };
94
162
  if (Array.isArray(obj['a:t'])) {
95
163
  for (const textItem of obj['a:t']) {
96
- let text = '';
97
164
  if (typeof textItem === 'string') {
98
- text = textItem;
165
+ text += textItem + ' ';
99
166
  }
100
167
  else if (textItem && typeof textItem === 'object' && '_' in textItem) {
101
- text = textItem._;
168
+ text += textItem._ + ' ';
102
169
  }
103
- if (text && text.trim()) {
104
- textElement.content += text.trim() + ' ';
105
- }
106
- }
107
- }
108
- if (textElement.content.trim()) {
109
- elements.push(textElement);
110
- }
111
- }
112
- // Check for tables
113
- if (obj['a:tbl']) {
114
- const tableElement = {
115
- type: 'table',
116
- content: obj['a:tbl'],
117
- position: position
118
- };
119
- elements.push(tableElement);
120
- }
121
- // Check for images
122
- if (obj['a:blip'] || obj['p:pic'] || obj['a:pic']) {
123
- const slideImages = extractedImages.filter(img => img.originalPath.includes(`slide${slideNumber}`) ||
124
- img.originalPath.includes('media/'));
125
- if (slideImages.length > imageCount) {
126
- const img = slideImages[imageCount];
127
- if (img?.savedPath) {
128
- const imageElement = {
129
- type: 'image',
130
- content: img.savedPath,
131
- position: position
132
- };
133
- elements.push(imageElement);
134
- imageCount++;
135
170
  }
136
171
  }
137
172
  }
138
173
  // Recursively process nested objects
139
174
  for (const key in obj) {
140
175
  if (key !== 'a:t') {
141
- extractShapes(obj[key], position);
176
+ text += extractText(obj[key]);
142
177
  }
143
178
  }
144
179
  }
145
180
  }
181
+ return text;
146
182
  }
147
- extractShapes(result);
148
- // Sort elements by position (top to bottom, left to right)
149
- const sortedElements = layoutParser.calculateRelativePosition(elements);
150
- let markdown = '';
151
- let currentRow = null;
152
- const rowThreshold = 50; // EMUs tolerance for same row
153
- for (const element of sortedElements) {
154
- const elementY = element.position?.y || 0;
155
- // Check if this element is in the same row as the previous
156
- if (currentRow && Math.abs(elementY - currentRow.y) < rowThreshold) {
157
- // Same row - add as column
158
- currentRow.elements.push(element);
159
- }
160
- else {
161
- // New row
162
- if (currentRow && currentRow.elements.length > 0) {
163
- // Process previous row
164
- markdown += processSlideRow(currentRow, layoutParser, imageExtractor);
165
- }
166
- currentRow = {
167
- y: elementY,
168
- elements: [element]
169
- };
170
- }
171
- }
172
- // Process the last row
173
- if (currentRow && currentRow.elements.length > 0) {
174
- markdown += processSlideRow(currentRow, layoutParser, imageExtractor);
183
+ // Extract all text content
184
+ const textContent = extractText(result).trim();
185
+ if (textContent) {
186
+ markdown += textContent + '\n\n';
175
187
  }
176
- // If no organized content, fall back to simple extraction
177
- if (!markdown.trim() && extractedImages.length > 0) {
178
- const slideImages = extractedImages.filter(img => img.originalPath.includes(`slide${slideNumber}`) ||
179
- (slideNumber === 1 && img.originalPath.includes('media/')));
180
- for (const img of slideImages) {
181
- if (img.savedPath) {
182
- const filename = path.basename(img.savedPath);
183
- markdown += imageExtractor.getImageMarkdown(`Slide ${slideNumber} Image`, filename) + '\n\n';
184
- }
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';
185
195
  }
186
196
  }
187
197
  return markdown.trim();
188
198
  }
189
199
  catch (error) {
190
200
  const message = error instanceof Error ? error.message : 'Unknown error';
191
- throw new ParseError('PPTX', `Failed to extract advanced content from slide: ${message}`, error);
192
- }
193
- }
194
- function processSlideRow(row, layoutParser, imageExtractor) {
195
- if (row.elements.length === 1) {
196
- // Single element in row
197
- const element = row.elements[0];
198
- return formatSlideElement(element, layoutParser, imageExtractor) + '\n\n';
199
- }
200
- else {
201
- // Multiple elements - create columns
202
- const columns = row.elements.map(element => ({
203
- content: formatSlideElement(element, layoutParser, imageExtractor)
204
- }));
205
- return layoutParser.createColumns(columns) + '\n';
206
- }
207
- }
208
- function formatSlideElement(element, layoutParser, imageExtractor) {
209
- switch (element.type) {
210
- case 'text': {
211
- const content = element.content;
212
- // Determine if it's a title based on position and length
213
- if ((element.position?.y || 0) < 1000000 && content.length < 100) {
214
- return `### ${content.trim()}`;
215
- }
216
- return content.trim();
217
- }
218
- case 'table':
219
- // Parse PowerPoint table (simplified)
220
- return parseSlideTable(element.content, layoutParser);
221
- case 'image': {
222
- const imagePath = element.content;
223
- const filename = path.basename(imagePath);
224
- return imageExtractor.getImageMarkdown('Slide Image', filename);
225
- }
226
- default:
227
- return typeof element.content === 'string' ? element.content : '';
228
- }
229
- }
230
- function parseSlideTable(tableData, layoutParser) {
231
- // Simplified table parsing for PowerPoint
232
- const table = tableData;
233
- if (!table?.[0]?.['a:tr']) {
234
- return '';
235
- }
236
- const rows = table[0]['a:tr'];
237
- const tableStruct = { rows: [] };
238
- for (const row of rows) {
239
- const cells = row['a:tc'] || [];
240
- const rowData = { cells: [] };
241
- for (const cell of cells) {
242
- let cellText = '';
243
- // Extract text from cell
244
- if (cell['a:txBody']?.[0]?.['a:p']) {
245
- const paragraphs = cell['a:txBody'][0]['a:p'];
246
- for (const para of paragraphs) {
247
- if (para['a:r']?.[0]?.['a:t']?.[0]) {
248
- cellText += para['a:r'][0]['a:t'][0] + ' ';
249
- }
250
- }
251
- }
252
- rowData.cells.push({
253
- text: cellText.trim(),
254
- bold: false,
255
- italic: false,
256
- alignment: 'left',
257
- backgroundColor: undefined,
258
- colSpan: 1,
259
- rowSpan: 1,
260
- merged: false
261
- });
262
- }
263
- tableStruct.rows.push(rowData);
201
+ throw new ParseError('PPTX', `Failed to extract legacy content from slide: ${message}`, error);
264
202
  }
265
- return layoutParser.parseAdvancedTable(tableStruct);
266
203
  }
267
204
  //# sourceMappingURL=pptx-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pptx-parser.js","sourceRoot":"","sources":["../../src/parsers/pptx-parser.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare class LayoutParser {
22
22
  */
23
23
  createTextBox(content: string, position?: Position): string;
24
24
  /**
25
- * Create multi-column layout approximation
25
+ * Create multi-column layout approximation - only for genuine multi-column content
26
26
  */
27
27
  createColumns(columns: readonly ColumnData[]): string;
28
28
  /**
@@ -34,7 +34,7 @@ export declare class LayoutParser {
34
34
  */
35
35
  createDivider(style?: 'simple' | 'thick' | 'dashed' | 'dotted'): string;
36
36
  /**
37
- * Calculate relative positioning for layout elements
37
+ * Calculate relative positioning for layout elements with improved grouping
38
38
  */
39
39
  calculateRelativePosition<T extends {
40
40
  position?: Position;
@@ -1 +1 @@
1
- {"version":3,"file":"layout-parser.d.ts","sourceRoot":"","sources":["../../src/utils/layout-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAGT,QAAQ,EAER,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAa;IAEjC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IA8GlF;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IA8BrC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM;IAmB3D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM;IAuCrD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,QAAmB,GAAG,MAAM;IAOhF;;OAEG;IACH,aAAa,CAAC,KAAK,GAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAmB,GAAG,MAAM;IAajF;;OAEG;IACH,yBAAyB,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE;IAgBzF;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAe/D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;CACF"}
1
+ {"version":3,"file":"layout-parser.d.ts","sourceRoot":"","sources":["../../src/utils/layout-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAGT,QAAQ,EAER,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAa;IAEjC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM;IA8GlF;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IA8BrC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM;IAmB3D;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM;IAiDrD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,QAAmB,GAAG,MAAM;IAOhF;;OAEG;IACH,aAAa,CAAC,KAAK,GAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAmB,GAAG,MAAM;IAajF;;OAEG;IACH,yBAAyB,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE;IAiBzF;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAe/D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;CACF"}
@@ -139,36 +139,44 @@ export class LayoutParser {
139
139
  return markdown + '\n';
140
140
  }
141
141
  /**
142
- * Create multi-column layout approximation
142
+ * Create multi-column layout approximation - only for genuine multi-column content
143
143
  */
144
144
  createColumns(columns) {
145
145
  if (!columns || columns.length <= 1) {
146
146
  return columns[0]?.content || '';
147
147
  }
148
- let markdown = '<!-- Multi-column layout -->\n\n';
149
- // Create a table to approximate columns
148
+ // Be much more conservative - only create columns if there's substantial content
149
+ // and it looks like genuinely different content types
150
+ const substantialColumns = columns.filter(col => col.content && col.content.trim().length > 10);
151
+ if (substantialColumns.length <= 1) {
152
+ // Just concatenate content with line breaks
153
+ return columns.map(col => col.content || '').filter(c => c.trim()).join('\n\n');
154
+ }
155
+ // Only create table format if we have 2-4 substantial columns
156
+ if (substantialColumns.length > 4) {
157
+ return substantialColumns.map(col => col.content || '').join('\n\n');
158
+ }
159
+ let markdown = '';
160
+ // Create a simple side-by-side layout without excessive table structure
150
161
  markdown += '|';
151
- for (let i = 0; i < columns.length; i++) {
162
+ for (let i = 0; i < substantialColumns.length; i++) {
152
163
  markdown += ` Column ${i + 1} |`;
153
164
  }
154
165
  markdown += '\n';
155
166
  markdown += '|';
156
- for (let i = 0; i < columns.length; i++) {
167
+ for (let i = 0; i < substantialColumns.length; i++) {
157
168
  markdown += ' --- |';
158
169
  }
159
170
  markdown += '\n';
160
- // Find the maximum number of paragraphs in any column
161
- const maxParagraphs = Math.max(...columns.map(col => col.content ? col.content.split('\n\n').length : 0));
162
- // Create rows for each paragraph level
163
- for (let p = 0; p < maxParagraphs; p++) {
164
- markdown += '|';
165
- for (const column of columns) {
166
- const paragraphs = column.content ? column.content.split('\n\n') : [];
167
- const paragraph = paragraphs[p] || '';
168
- markdown += ` ${paragraph.replace(/\n/g, '<br>')} |`;
169
- }
170
- markdown += '\n';
171
+ // Create a single row with all content
172
+ markdown += '|';
173
+ for (const column of substantialColumns) {
174
+ const content = column.content || '';
175
+ // Limit content length to prevent excessive table width
176
+ const truncated = content.length > 200 ? content.substring(0, 200) + '...' : content;
177
+ markdown += ` ${truncated.replace(/\n/g, '<br>')} |`;
171
178
  }
179
+ markdown += '\n';
172
180
  return markdown + '\n';
173
181
  }
174
182
  /**
@@ -196,17 +204,18 @@ export class LayoutParser {
196
204
  }
197
205
  }
198
206
  /**
199
- * Calculate relative positioning for layout elements
207
+ * Calculate relative positioning for layout elements with improved grouping
200
208
  */
201
209
  calculateRelativePosition(elements) {
202
- // Sort elements by their Y position, then X position
210
+ // Sort elements by their Y position primarily, with much larger threshold for "same row"
203
211
  return [...elements].sort((a, b) => {
204
212
  const aY = a.position?.y || 0;
205
213
  const bY = b.position?.y || 0;
206
214
  const aX = a.position?.x || 0;
207
215
  const bX = b.position?.x || 0;
208
216
  const yDiff = aY - bY;
209
- if (Math.abs(yDiff) < 50) { // Same "row"
217
+ // Increase threshold significantly to avoid over-segmentation
218
+ if (Math.abs(yDiff) < 200) { // Much larger tolerance for same "section"
210
219
  return aX - bX;
211
220
  }
212
221
  return yDiff;
@@ -1 +1 @@
1
- {"version":3,"file":"layout-parser.js","sourceRoot":"","sources":["../../src/utils/layout-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-parser.js","sourceRoot":"","sources":["../../src/utils/layout-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import type { ImageData } from '../types/interfaces.js';
3
+ export interface SlideRenderOptions {
4
+ readonly quality?: number;
5
+ readonly density?: number;
6
+ readonly format?: 'png' | 'jpg';
7
+ readonly saveBase64?: boolean;
8
+ }
9
+ export interface SlideRenderResult {
10
+ readonly slideImages: readonly ImageData[];
11
+ readonly slideCount: number;
12
+ readonly metadata: {
13
+ readonly format: string;
14
+ readonly quality: number;
15
+ readonly density: number;
16
+ };
17
+ }
18
+ export declare class SlideRenderer {
19
+ private readonly outputDir;
20
+ constructor(outputDir: string);
21
+ /**
22
+ * Convert PPTX buffer to individual slide images
23
+ */
24
+ renderSlidesToImages(pptxBuffer: Buffer, options?: SlideRenderOptions): Promise<SlideRenderResult>;
25
+ /**
26
+ * Convert PPTX buffer to PDF buffer using LibreOffice
27
+ */
28
+ private convertPptxToPdf;
29
+ /**
30
+ * Convert PDF buffer to individual slide images using pdf2pic
31
+ */
32
+ private convertPdfToSlideImages;
33
+ /**
34
+ * Generate markdown with slide images
35
+ */
36
+ generateSlideMarkdown(slideImages: readonly ImageData[], title?: string): string;
37
+ /**
38
+ * Clean up generated image files
39
+ */
40
+ cleanup(): Promise<void>;
41
+ /**
42
+ * Check if LibreOffice is available on the system
43
+ */
44
+ static checkLibreOfficeAvailability(): Promise<boolean>;
45
+ }
46
+ //# sourceMappingURL=slide-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slide-renderer.d.ts","sourceRoot":"","sources":["../../src/utils/slide-renderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAMrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAiC7B;;OAEG;YACW,gBAAgB;IAgB9B;;OAEG;YACW,uBAAuB;IAoDrC;;OAEG;IACH,qBAAqB,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAuBhF;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;OAEG;WACU,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC;CAU9D"}
@@ -0,0 +1,152 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs/promises';
3
+ import { Buffer } from 'node:buffer';
4
+ import libre from 'libreoffice-convert';
5
+ import { fromBuffer } from 'pdf2pic';
6
+ import { promisify } from 'node:util';
7
+ import { ParseError } from '../types/errors.js';
8
+ // Promisify libreoffice-convert
9
+ const convertAsync = promisify(libre.convert);
10
+ export class SlideRenderer {
11
+ outputDir;
12
+ constructor(outputDir) {
13
+ this.outputDir = outputDir;
14
+ }
15
+ /**
16
+ * Convert PPTX buffer to individual slide images
17
+ */
18
+ async renderSlidesToImages(pptxBuffer, options = {}) {
19
+ const { quality = 90, density = 150, format = 'png', saveBase64 = false } = options;
20
+ try {
21
+ // Step 1: Convert PPTX to PDF using LibreOffice
22
+ const pdfBuffer = await this.convertPptxToPdf(pptxBuffer);
23
+ // Step 2: Convert PDF to individual slide images
24
+ const slideImages = await this.convertPdfToSlideImages(pdfBuffer, { quality, density, format, saveBase64 });
25
+ return {
26
+ slideImages,
27
+ slideCount: slideImages.length,
28
+ metadata: {
29
+ format,
30
+ quality,
31
+ density
32
+ }
33
+ };
34
+ }
35
+ catch (error) {
36
+ const message = error instanceof Error ? error.message : 'Unknown error';
37
+ throw new ParseError('SlideRenderer', `Failed to render slides: ${message}`, error);
38
+ }
39
+ }
40
+ /**
41
+ * Convert PPTX buffer to PDF buffer using LibreOffice
42
+ */
43
+ async convertPptxToPdf(pptxBuffer) {
44
+ try {
45
+ // Convert PPTX to PDF using LibreOffice
46
+ const pdfBuffer = await convertAsync(pptxBuffer, '.pdf', undefined);
47
+ if (!pdfBuffer || pdfBuffer.length === 0) {
48
+ throw new Error('LibreOffice conversion resulted in empty PDF');
49
+ }
50
+ return pdfBuffer;
51
+ }
52
+ catch (error) {
53
+ const message = error instanceof Error ? error.message : 'Unknown error';
54
+ throw new ParseError('SlideRenderer', `PPTX to PDF conversion failed: ${message}`, error);
55
+ }
56
+ }
57
+ /**
58
+ * Convert PDF buffer to individual slide images using pdf2pic
59
+ */
60
+ async convertPdfToSlideImages(pdfBuffer, options) {
61
+ try {
62
+ // Ensure output directory exists
63
+ await fs.mkdir(this.outputDir, { recursive: true });
64
+ // Configure pdf2pic
65
+ const convert = fromBuffer(pdfBuffer, {
66
+ density: options.density,
67
+ saveFilename: 'slide',
68
+ savePath: this.outputDir,
69
+ format: options.format,
70
+ width: undefined, // Let pdf2pic calculate based on density
71
+ height: undefined,
72
+ quality: options.quality
73
+ });
74
+ // Get total number of pages first
75
+ const storeAsImage = convert.bulk(-1, true);
76
+ const results = await storeAsImage;
77
+ const slideImages = [];
78
+ for (let i = 0; i < results.length; i++) {
79
+ const result = results[i];
80
+ const slideNumber = i + 1;
81
+ const filename = `slide-${slideNumber.toString().padStart(3, '0')}.${options.format}`;
82
+ const savedPath = path.join(this.outputDir, filename);
83
+ // Save the image file
84
+ const imageBuffer = result.buffer;
85
+ if (imageBuffer) {
86
+ await fs.writeFile(savedPath, imageBuffer);
87
+ slideImages.push({
88
+ originalPath: `slide${slideNumber}`, // Virtual path for consistency
89
+ savedPath: savedPath,
90
+ size: imageBuffer.length,
91
+ format: options.format
92
+ });
93
+ }
94
+ }
95
+ return slideImages;
96
+ }
97
+ catch (error) {
98
+ const message = error instanceof Error ? error.message : 'Unknown error';
99
+ throw new ParseError('SlideRenderer', `PDF to images conversion failed: ${message}`, error);
100
+ }
101
+ }
102
+ /**
103
+ * Generate markdown with slide images
104
+ */
105
+ generateSlideMarkdown(slideImages, title) {
106
+ let markdown = '';
107
+ if (title) {
108
+ markdown += `# ${title}\n\n`;
109
+ }
110
+ for (let i = 0; i < slideImages.length; i++) {
111
+ const slide = slideImages[i];
112
+ const slideNumber = i + 1;
113
+ markdown += `## Slide ${slideNumber}\n\n`;
114
+ // Use relative path for markdown image reference
115
+ const relativePath = path.relative(process.cwd(), slide.savedPath)
116
+ .replace(/\\/g, '/'); // Ensure forward slashes for markdown
117
+ markdown += `![Slide ${slideNumber}](${relativePath})\n\n`;
118
+ }
119
+ return markdown.trim();
120
+ }
121
+ /**
122
+ * Clean up generated image files
123
+ */
124
+ async cleanup() {
125
+ try {
126
+ const files = await fs.readdir(this.outputDir);
127
+ const slideFiles = files.filter(file => file.startsWith('slide-') && (file.endsWith('.png') || file.endsWith('.jpg')));
128
+ for (const file of slideFiles) {
129
+ const filePath = path.join(this.outputDir, file);
130
+ await fs.unlink(filePath);
131
+ }
132
+ }
133
+ catch (error) {
134
+ // Ignore cleanup errors
135
+ }
136
+ }
137
+ /**
138
+ * Check if LibreOffice is available on the system
139
+ */
140
+ static async checkLibreOfficeAvailability() {
141
+ try {
142
+ // Create a minimal test document to verify LibreOffice works
143
+ const testBuffer = Buffer.from('test');
144
+ await convertAsync(testBuffer, '.pdf', undefined);
145
+ return true;
146
+ }
147
+ catch {
148
+ return false;
149
+ }
150
+ }
151
+ }
152
+ //# sourceMappingURL=slide-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slide-renderer.js","sourceRoot":"","sources":["../../src/utils/slide-renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "file2md",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "A TypeScript library for converting various document types (PDF, DOCX, XLSX, PPTX) into Markdown with image and layout preservation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,6 +34,7 @@
34
34
  "dependencies": {
35
35
  "file-type": "^16.5.4",
36
36
  "jszip": "^3.10.1",
37
+ "libreoffice-convert": "^1.6.1",
37
38
  "pdf-parse": "^1.1.1",
38
39
  "pdf2pic": "^2.1.4",
39
40
  "xml2js": "^0.6.2"