file2md 1.4.49 โ 1.4.50
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.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parsers/pdf-parser.d.ts +1 -2
- package/dist/parsers/pdf-parser.d.ts.map +1 -1
- package/dist/parsers/pdf-parser.js +4 -196
- package/dist/parsers/pdf-parser.js.map +1 -1
- package/dist/utils/pdf-extractor.d.ts +7 -43
- package/dist/utils/pdf-extractor.d.ts.map +1 -1
- package/dist/utils/pdf-extractor.js +13 -344
- package/dist/utils/pdf-extractor.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -114,7 +114,7 @@ export async function convert(input, options = {}) {
|
|
|
114
114
|
let additionalMetadata = {};
|
|
115
115
|
switch (detectedType.mime) {
|
|
116
116
|
case SUPPORTED_MIME_TYPES.PDF: {
|
|
117
|
-
const result = await parsePdf(buffer,
|
|
117
|
+
const result = await parsePdf(buffer, { maxPages, preserveLayout });
|
|
118
118
|
markdown = result.markdown;
|
|
119
119
|
images = result.images || [];
|
|
120
120
|
pageCount = result.pageCount || 1;
|
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,8 +1,7 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
2
|
import { type PDFParseOptions, type PDFParseResult } from '../utils/pdf-extractor.js';
|
|
3
|
-
import type { ImageExtractor } from '../utils/image-extractor.js';
|
|
4
3
|
/**
|
|
5
4
|
* Parse PDF buffer and convert to markdown with enhanced layout preservation
|
|
6
5
|
*/
|
|
7
|
-
export declare function parsePdf(buffer: Buffer,
|
|
6
|
+
export declare function parsePdf(buffer: Buffer, options?: PDFParseOptions): Promise<PDFParseResult>;
|
|
8
7
|
//# sourceMappingURL=pdf-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGpG;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6DzB"}
|
|
@@ -1,74 +1,31 @@
|
|
|
1
1
|
import pdfParse from 'pdf-parse';
|
|
2
|
-
import { Buffer } from 'node:buffer';
|
|
3
|
-
import path from 'node:path';
|
|
4
2
|
import { PDFExtractor } from '../utils/pdf-extractor.js';
|
|
5
3
|
import { ParseError, InvalidFileError } from '../types/errors.js';
|
|
6
4
|
/**
|
|
7
5
|
* Parse PDF buffer and convert to markdown with enhanced layout preservation
|
|
8
6
|
*/
|
|
9
|
-
export async function parsePdf(buffer,
|
|
7
|
+
export async function parsePdf(buffer, options = {}) {
|
|
10
8
|
try {
|
|
11
9
|
const data = await pdfParse(buffer);
|
|
12
|
-
const pdfExtractor = new PDFExtractor(
|
|
10
|
+
const pdfExtractor = new PDFExtractor();
|
|
13
11
|
let markdown = '';
|
|
14
|
-
const images = [];
|
|
12
|
+
const images = []; // No images for PDF
|
|
15
13
|
let pageCount = data.numpages || 1;
|
|
16
14
|
// Apply maxPages limit if specified
|
|
17
15
|
if (options.maxPages && options.maxPages > 0) {
|
|
18
16
|
pageCount = Math.min(pageCount, options.maxPages);
|
|
19
17
|
}
|
|
20
|
-
|
|
21
|
-
const embeddedImages = await extractEmbeddedImages(buffer, imageExtractor);
|
|
22
|
-
if (embeddedImages.length > 0) {
|
|
23
|
-
images.push(...embeddedImages);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (embeddedError) {
|
|
27
|
-
console.warn('Failed to extract embedded images:', embeddedError instanceof Error ? embeddedError.message : 'Unknown error');
|
|
28
|
-
}
|
|
18
|
+
console.log('๐ PDF text-only extraction - no images will be processed');
|
|
29
19
|
// Try to extract text with enhanced layout
|
|
30
20
|
if (data.text && data.text.trim()) {
|
|
31
21
|
try {
|
|
32
22
|
const enhancedText = await pdfExtractor.enhanceTextWithLayout(data.text, data);
|
|
33
23
|
markdown += enhancedText;
|
|
34
|
-
// Embed any extracted images inline within the text content
|
|
35
|
-
if (images.length > 0) {
|
|
36
|
-
markdown += await embedImagesInContent(images, imageExtractor);
|
|
37
|
-
}
|
|
38
24
|
}
|
|
39
25
|
catch {
|
|
40
26
|
console.warn('Layout enhancement failed, falling back to basic text extraction');
|
|
41
27
|
// Fall back to basic text extraction
|
|
42
28
|
markdown = extractBasicText(data.text);
|
|
43
|
-
// Still try to embed images
|
|
44
|
-
if (images.length > 0) {
|
|
45
|
-
markdown += await embedImagesInContent(images, imageExtractor);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// If text is minimal or extraction failed, convert pages to images
|
|
50
|
-
if (!data.text || data.text.trim().length < 100) {
|
|
51
|
-
try {
|
|
52
|
-
const pageImages = await pdfExtractor.extractImagesFromPDF(buffer);
|
|
53
|
-
if (pageImages.length > 0) {
|
|
54
|
-
// Convert page images to ImageData format
|
|
55
|
-
for (const page of pageImages) {
|
|
56
|
-
images.push({
|
|
57
|
-
originalPath: `page_${page.pageNumber}`,
|
|
58
|
-
savedPath: page.fullPath || page.imagePath,
|
|
59
|
-
basePath: '',
|
|
60
|
-
format: 'png',
|
|
61
|
-
dimensions: page.dimensions
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
if (markdown.trim()) {
|
|
65
|
-
markdown += '\n\n---\n\n## Visual Content\n\n';
|
|
66
|
-
}
|
|
67
|
-
markdown += await pdfExtractor.createPageBreaks(pageImages);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch (imageError) {
|
|
71
|
-
console.warn('Failed to extract PDF as images:', imageError instanceof Error ? imageError.message : 'Unknown error');
|
|
72
29
|
}
|
|
73
30
|
}
|
|
74
31
|
// Fallback to basic text if everything else fails
|
|
@@ -102,155 +59,6 @@ export async function parsePdf(buffer, imageExtractor, options = {}) {
|
|
|
102
59
|
throw new ParseError('PDF', message, error);
|
|
103
60
|
}
|
|
104
61
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Extract embedded images from PDF
|
|
107
|
-
*/
|
|
108
|
-
async function extractEmbeddedImages(buffer, imageExtractor) {
|
|
109
|
-
try {
|
|
110
|
-
console.log('๐ผ๏ธ Starting PDF embedded image extraction...');
|
|
111
|
-
// First, try to parse the PDF and check if it contains images
|
|
112
|
-
const pdfData = await pdfParse(buffer);
|
|
113
|
-
// If the PDF has very little text content, it's likely image-heavy
|
|
114
|
-
const textLength = pdfData.text ? pdfData.text.trim().length : 0;
|
|
115
|
-
const isImageHeavy = !pdfData.text || textLength < 200;
|
|
116
|
-
console.log(`๐ PDF analysis - Text length: ${textLength}, Pages: ${pdfData.numpages || 1}, Image-heavy: ${isImageHeavy}`);
|
|
117
|
-
// Always try the PDFExtractor approach first as it's more reliable
|
|
118
|
-
console.log('๐ Trying to extract images using PDFExtractor...');
|
|
119
|
-
try {
|
|
120
|
-
const { PDFExtractor } = await import('../utils/pdf-extractor.js');
|
|
121
|
-
const pdfExtractor = new PDFExtractor(imageExtractor);
|
|
122
|
-
const extractedImages = await pdfExtractor.extractImagesFromPDF(buffer);
|
|
123
|
-
if (extractedImages.length > 0) {
|
|
124
|
-
console.log(`๐ PDFExtractor successfully extracted ${extractedImages.length} images`);
|
|
125
|
-
return extractedImages.map(page => ({
|
|
126
|
-
originalPath: `pdf_page_${page.pageNumber}.png`,
|
|
127
|
-
savedPath: page.fullPath || page.imagePath,
|
|
128
|
-
basePath: 'pdf/',
|
|
129
|
-
format: 'png',
|
|
130
|
-
dimensions: page.dimensions
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
console.log('โน๏ธ PDFExtractor found no images to extract');
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
catch (extractorError) {
|
|
138
|
-
console.warn('โ ๏ธ PDFExtractor failed:', extractorError instanceof Error ? extractorError.message : 'Unknown error');
|
|
139
|
-
}
|
|
140
|
-
// If PDFExtractor doesn't find images, try alternative approaches
|
|
141
|
-
if (isImageHeavy) {
|
|
142
|
-
console.log('๐ PDF appears to be image-heavy, trying alternative extraction...');
|
|
143
|
-
return await extractImagesAlternative(buffer, imageExtractor, pdfData.numpages || 1);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
console.log('๐ PDF appears to be text-heavy with potential embedded images...');
|
|
147
|
-
return await extractEmbeddedImagesAlternative(buffer, imageExtractor);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
console.warn('โ Failed to extract embedded PDF images:', error instanceof Error ? error.message : 'Unknown error');
|
|
152
|
-
return [];
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Alternative approach for extracting images from image-heavy PDFs
|
|
157
|
-
*/
|
|
158
|
-
async function extractImagesAlternative(buffer, imageExtractor, pageCount) {
|
|
159
|
-
console.log(`๐ผ๏ธ Alternative image extraction for ${pageCount} page(s)...`);
|
|
160
|
-
// For image-heavy PDFs, we'll create a placeholder image that indicates
|
|
161
|
-
// the PDF contains images but requires external tools for extraction
|
|
162
|
-
try {
|
|
163
|
-
console.log('๐ Creating placeholder for image-heavy PDF...');
|
|
164
|
-
// Create a simple placeholder image using Canvas or text
|
|
165
|
-
const placeholderContent = `PDF Image Placeholder\n\nThis PDF appears to contain ${pageCount} page(s) with images.\nTo extract individual images, external tools like GraphicsMagick/ImageMagick would be required.\n\nThe PDF text content has been successfully converted to markdown.`;
|
|
166
|
-
// Create a simple text-based placeholder
|
|
167
|
-
const placeholderBuffer = Buffer.from(placeholderContent, 'utf-8');
|
|
168
|
-
// Save as a text file for now (this could be enhanced with actual image generation)
|
|
169
|
-
const savedPath = await imageExtractor.saveImage(placeholderBuffer, 'pdf_images_placeholder.txt');
|
|
170
|
-
if (savedPath) {
|
|
171
|
-
console.log('โ
Created placeholder for PDF images');
|
|
172
|
-
return [{
|
|
173
|
-
originalPath: 'pdf_images_placeholder.txt',
|
|
174
|
-
savedPath,
|
|
175
|
-
basePath: 'pdf/',
|
|
176
|
-
format: 'txt',
|
|
177
|
-
dimensions: undefined
|
|
178
|
-
}];
|
|
179
|
-
}
|
|
180
|
-
return [];
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
console.warn('โ Failed to create placeholder:', error instanceof Error ? error.message : 'Unknown error');
|
|
184
|
-
return [];
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Alternative approach for extracting embedded images from text-heavy PDFs
|
|
189
|
-
*/
|
|
190
|
-
async function extractEmbeddedImagesAlternative(buffer, imageExtractor) {
|
|
191
|
-
console.log('๐ Alternative approach for text-heavy PDF with potential images...');
|
|
192
|
-
try {
|
|
193
|
-
// Try to analyze the PDF structure for embedded images
|
|
194
|
-
// This is a simplified approach that looks for image-like patterns in the PDF
|
|
195
|
-
const pdfString = buffer.toString('binary');
|
|
196
|
-
// Look for common image signatures in PDF
|
|
197
|
-
const imagePatterns = [
|
|
198
|
-
/\/Type\/XObject[\s\S]*?\/Subtype\/Image/g,
|
|
199
|
-
/\/FlateDecode[\s\S]*?\/Type\/XObject/g,
|
|
200
|
-
/JFIF/g, // JPEG
|
|
201
|
-
/PNG/g, // PNG
|
|
202
|
-
/GIF89a/g, // GIF
|
|
203
|
-
];
|
|
204
|
-
let imageCount = 0;
|
|
205
|
-
for (const pattern of imagePatterns) {
|
|
206
|
-
const matches = pdfString.match(pattern);
|
|
207
|
-
if (matches) {
|
|
208
|
-
imageCount += matches.length;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
console.log(`๐ Found ${imageCount} potential image references in PDF structure`);
|
|
212
|
-
if (imageCount > 0) {
|
|
213
|
-
// Create a summary of found images
|
|
214
|
-
const summaryContent = `PDF Image Analysis Summary\n\nFound ${imageCount} potential image(s) embedded in this PDF.\n\nThese images are embedded within the PDF structure but require specialized tools for extraction.\nThe text content has been successfully converted to markdown.\n\nTo extract the actual images, consider using:\n- Adobe Acrobat Pro\n- XPDF tools\n- Poppler utilities\n- Online PDF image extraction services`;
|
|
215
|
-
const summaryBuffer = Buffer.from(summaryContent, 'utf-8');
|
|
216
|
-
const savedPath = await imageExtractor.saveImage(summaryBuffer, 'pdf_embedded_images_summary.txt');
|
|
217
|
-
if (savedPath) {
|
|
218
|
-
console.log(`โ
Created summary for ${imageCount} embedded images`);
|
|
219
|
-
return [{
|
|
220
|
-
originalPath: 'pdf_embedded_images_summary.txt',
|
|
221
|
-
savedPath,
|
|
222
|
-
basePath: 'pdf/',
|
|
223
|
-
format: 'txt',
|
|
224
|
-
dimensions: undefined
|
|
225
|
-
}];
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
console.log('โน๏ธ No embedded images detected in PDF structure');
|
|
230
|
-
}
|
|
231
|
-
return [];
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
console.warn('โ Failed to analyze PDF for embedded images:', error instanceof Error ? error.message : 'Unknown error');
|
|
235
|
-
return [];
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Embed images inline within content
|
|
240
|
-
*/
|
|
241
|
-
async function embedImagesInContent(images, imageExtractor) {
|
|
242
|
-
if (images.length === 0)
|
|
243
|
-
return '';
|
|
244
|
-
let imageMarkdown = '\n\n## Document Images\n\n';
|
|
245
|
-
for (const [index, image] of images.entries()) {
|
|
246
|
-
if (image.savedPath) {
|
|
247
|
-
const filename = path.basename(image.savedPath);
|
|
248
|
-
imageMarkdown += imageExtractor.getImageMarkdown(`Image ${index + 1}`, filename);
|
|
249
|
-
imageMarkdown += '\n\n';
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
return imageMarkdown;
|
|
253
|
-
}
|
|
254
62
|
/**
|
|
255
63
|
* Extract basic text from PDF with minimal formatting
|
|
256
64
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-parser.js","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-parser.js","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { Buffer } from 'node:buffer';
|
|
2
|
-
import type { PageData } from '../types/interfaces.js';
|
|
3
|
-
import type { ImageExtractor } from './image-extractor.js';
|
|
4
1
|
export interface PDFParseOptions {
|
|
5
2
|
readonly maxPages?: number;
|
|
6
3
|
readonly preserveLayout?: boolean;
|
|
@@ -12,45 +9,16 @@ export interface PDFParseResult {
|
|
|
12
9
|
readonly metadata: Record<string, unknown>;
|
|
13
10
|
}
|
|
14
11
|
export declare class PDFExtractor {
|
|
15
|
-
private readonly imageExtractor;
|
|
16
12
|
private pageCounter;
|
|
17
|
-
constructor(
|
|
13
|
+
constructor();
|
|
18
14
|
/**
|
|
19
|
-
* Extract
|
|
15
|
+
* Extract text from PDF - no image extraction
|
|
20
16
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Extract images using native tools (Poppler/MuPDF) - highest quality
|
|
28
|
-
*/
|
|
29
|
-
private extractWithNativeTools;
|
|
30
|
-
/**
|
|
31
|
-
* Extract images using Poppler pdfimages (gold standard)
|
|
32
|
-
*/
|
|
33
|
-
private extractWithPoppler;
|
|
34
|
-
/**
|
|
35
|
-
* Extract images using MuPDF mutool (fallback)
|
|
36
|
-
*/
|
|
37
|
-
private extractWithMuPDF;
|
|
38
|
-
/**
|
|
39
|
-
* Check if a command is available on the system
|
|
40
|
-
*/
|
|
41
|
-
private checkCommand;
|
|
42
|
-
/**
|
|
43
|
-
* Run a command with arguments
|
|
44
|
-
*/
|
|
45
|
-
private runCommand;
|
|
46
|
-
/**
|
|
47
|
-
* Process extracted images from temp directory
|
|
48
|
-
*/
|
|
49
|
-
private processExtractedImages;
|
|
50
|
-
/**
|
|
51
|
-
* Create enhanced placeholder files with actual PDF content when image conversion fails
|
|
52
|
-
*/
|
|
53
|
-
private createPlaceholders;
|
|
17
|
+
extractTextFromPDF(buffer: Buffer): Promise<{
|
|
18
|
+
text: string;
|
|
19
|
+
pageCount: number;
|
|
20
|
+
metadata: Record<string, unknown>;
|
|
21
|
+
}>;
|
|
54
22
|
/**
|
|
55
23
|
* Enhance text with layout detection
|
|
56
24
|
*/
|
|
@@ -62,10 +30,6 @@ export declare class PDFExtractor {
|
|
|
62
30
|
private formatTableRows;
|
|
63
31
|
private isListItem;
|
|
64
32
|
private formatListItem;
|
|
65
|
-
/**
|
|
66
|
-
* Create page breaks with images
|
|
67
|
-
*/
|
|
68
|
-
createPageBreaks(pageImages: readonly PageData[]): Promise<string>;
|
|
69
33
|
/**
|
|
70
34
|
* Reset internal counters
|
|
71
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/pdf-extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pdf-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/pdf-extractor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,wBAAwB,EAAE,SAAS,EAAE,CAAC;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAa;;IAMhC;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAsBzH;;OAEG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAiE9E,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;CACF"}
|
|
@@ -1,345 +1,29 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import { Buffer } from 'node:buffer';
|
|
3
1
|
export class PDFExtractor {
|
|
4
|
-
imageExtractor;
|
|
5
2
|
pageCounter = 0;
|
|
6
|
-
constructor(
|
|
7
|
-
|
|
3
|
+
constructor() {
|
|
4
|
+
// No longer needs image extractor - PDF text only
|
|
8
5
|
}
|
|
9
6
|
/**
|
|
10
|
-
* Extract
|
|
7
|
+
* Extract text from PDF - no image extraction
|
|
11
8
|
*/
|
|
12
|
-
async
|
|
9
|
+
async extractTextFromPDF(buffer) {
|
|
13
10
|
try {
|
|
14
|
-
console.log('
|
|
15
|
-
// Parse the PDF to get
|
|
11
|
+
console.log('๐ PDFExtractor: Extracting text content only...');
|
|
12
|
+
// Parse the PDF to get text content
|
|
16
13
|
const pdfParse = await import('pdf-parse');
|
|
17
14
|
const pdfData = await pdfParse.default(buffer);
|
|
18
15
|
console.log(`๐ PDFExtractor: PDF has ${pdfData.numpages} pages, text length: ${pdfData.text?.length || 0}`);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
const extractedPages = await this.convertPDFToImages(buffer, Math.min(pdfData.numpages, 3));
|
|
26
|
-
if (extractedPages.length > 0) {
|
|
27
|
-
console.log(`๐ Successfully extracted ${extractedPages.length} page images`);
|
|
28
|
-
return extractedPages;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch (extractionError) {
|
|
32
|
-
console.warn('โ ๏ธ All PDF image extraction methods failed:', extractionError instanceof Error ? extractionError.message : 'Unknown error');
|
|
33
|
-
// Fall back to placeholder creation if all extraction methods fail
|
|
34
|
-
return await this.createPlaceholders(pdfData.numpages, buffer);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
console.log('โน๏ธ PDF appears to be text-heavy - no image extraction needed');
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
return [];
|
|
16
|
+
return {
|
|
17
|
+
text: pdfData.text || '',
|
|
18
|
+
pageCount: pdfData.numpages || 0,
|
|
19
|
+
metadata: pdfData.metadata || {}
|
|
20
|
+
};
|
|
42
21
|
}
|
|
43
22
|
catch (error) {
|
|
44
|
-
console.warn('โ ๏ธ PDFExtractor failed:', error instanceof Error ? error.message : 'Unknown error');
|
|
45
|
-
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Extract images from PDF using multiple approaches: Native tools first, then PDFium WASM fallback
|
|
51
|
-
*/
|
|
52
|
-
async convertPDFToImages(buffer, maxPages = 3) {
|
|
53
|
-
console.log(`๐ Starting PDF image extraction (trying multiple approaches)...`);
|
|
54
|
-
// First: Try native tools (Poppler/MuPDF) - highest quality, original image bytes
|
|
55
|
-
try {
|
|
56
|
-
console.log(`๐ง Attempting native tools extraction...`);
|
|
57
|
-
const nativeImages = await this.extractWithNativeTools(buffer, maxPages);
|
|
58
|
-
if (nativeImages.length > 0) {
|
|
59
|
-
console.log(`โ
Native tools extracted ${nativeImages.length} images`);
|
|
60
|
-
return nativeImages;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
catch (nativeError) {
|
|
64
|
-
console.warn(`โ ๏ธ Native tools not available:`, nativeError instanceof Error ? nativeError.message : 'Unknown error');
|
|
65
|
-
}
|
|
66
|
-
// If native tools fail, throw error to trigger enhanced placeholder creation
|
|
67
|
-
throw new Error('Native PDF image extraction tools not available. Install poppler-utils or mupdf-tools for high-quality image extraction.');
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Extract images using native tools (Poppler/MuPDF) - highest quality
|
|
71
|
-
*/
|
|
72
|
-
async extractWithNativeTools(buffer, maxPages) {
|
|
73
|
-
// Try Poppler pdfimages first (gold standard)
|
|
74
|
-
try {
|
|
75
|
-
const popplerImages = await this.extractWithPoppler(buffer);
|
|
76
|
-
if (popplerImages.length > 0) {
|
|
77
|
-
return popplerImages.slice(0, maxPages);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (popplerError) {
|
|
81
|
-
console.warn(`โ ๏ธ Poppler extraction failed:`, popplerError instanceof Error ? popplerError.message : 'Unknown error');
|
|
82
|
-
}
|
|
83
|
-
// Fallback to MuPDF mutool
|
|
84
|
-
try {
|
|
85
|
-
const muPdfImages = await this.extractWithMuPDF(buffer);
|
|
86
|
-
if (muPdfImages.length > 0) {
|
|
87
|
-
return muPdfImages.slice(0, maxPages);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (muPdfError) {
|
|
91
|
-
console.warn(`โ ๏ธ MuPDF extraction failed:`, muPdfError instanceof Error ? muPdfError.message : 'Unknown error');
|
|
92
|
-
}
|
|
93
|
-
throw new Error('Native PDF tools not available');
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Extract images using Poppler pdfimages (gold standard)
|
|
97
|
-
*/
|
|
98
|
-
async extractWithPoppler(buffer) {
|
|
99
|
-
const { spawn } = await import('child_process');
|
|
100
|
-
const fs = await import('fs/promises');
|
|
101
|
-
const os = await import('os');
|
|
102
|
-
// Create temp files
|
|
103
|
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'pdf-extract-'));
|
|
104
|
-
const pdfPath = path.join(tempDir, 'input.pdf');
|
|
105
|
-
const outputPrefix = path.join(tempDir, 'img');
|
|
106
|
-
try {
|
|
107
|
-
// Write PDF to temp file
|
|
108
|
-
await fs.writeFile(pdfPath, buffer);
|
|
109
|
-
// Check if pdfimages is available
|
|
110
|
-
await this.checkCommand('pdfimages');
|
|
111
|
-
// Extract images using pdfimages
|
|
112
|
-
await this.runCommand('pdfimages', ['-all', pdfPath, outputPrefix]);
|
|
113
|
-
// Read extracted images
|
|
114
|
-
const extractedImages = await this.processExtractedImages(tempDir, 'poppler');
|
|
115
|
-
return extractedImages;
|
|
116
|
-
}
|
|
117
|
-
finally {
|
|
118
|
-
// Cleanup temp directory
|
|
119
|
-
try {
|
|
120
|
-
await fs.rm(tempDir, { recursive: true, force: true });
|
|
121
|
-
}
|
|
122
|
-
catch (cleanupError) {
|
|
123
|
-
console.warn('Failed to cleanup temp directory:', cleanupError);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Extract images using MuPDF mutool (fallback)
|
|
129
|
-
*/
|
|
130
|
-
async extractWithMuPDF(buffer) {
|
|
131
|
-
const { spawn } = await import('child_process');
|
|
132
|
-
const fs = await import('fs/promises');
|
|
133
|
-
const os = await import('os');
|
|
134
|
-
// Create temp files
|
|
135
|
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'pdf-extract-'));
|
|
136
|
-
const pdfPath = path.join(tempDir, 'input.pdf');
|
|
137
|
-
try {
|
|
138
|
-
// Write PDF to temp file
|
|
139
|
-
await fs.writeFile(pdfPath, buffer);
|
|
140
|
-
// Check if mutool is available
|
|
141
|
-
await this.checkCommand('mutool');
|
|
142
|
-
// Extract images using mutool
|
|
143
|
-
await this.runCommand('mutool', ['extract', '-a', pdfPath]);
|
|
144
|
-
// Read extracted images
|
|
145
|
-
const extractedImages = await this.processExtractedImages(tempDir, 'mupdf');
|
|
146
|
-
return extractedImages;
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
// Cleanup temp directory
|
|
150
|
-
try {
|
|
151
|
-
await fs.rm(tempDir, { recursive: true, force: true });
|
|
152
|
-
}
|
|
153
|
-
catch (cleanupError) {
|
|
154
|
-
console.warn('Failed to cleanup temp directory:', cleanupError);
|
|
155
|
-
}
|
|
23
|
+
console.warn('โ ๏ธ PDFExtractor failed to extract text:', error instanceof Error ? error.message : 'Unknown error');
|
|
24
|
+
throw error;
|
|
156
25
|
}
|
|
157
26
|
}
|
|
158
|
-
/**
|
|
159
|
-
* Check if a command is available on the system
|
|
160
|
-
*/
|
|
161
|
-
async checkCommand(command) {
|
|
162
|
-
const { spawn } = await import('child_process');
|
|
163
|
-
return new Promise((resolve, reject) => {
|
|
164
|
-
const child = spawn(command, ['--version'], { stdio: 'pipe' });
|
|
165
|
-
child.on('close', (code) => {
|
|
166
|
-
if (code === 0) {
|
|
167
|
-
resolve();
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
reject(new Error(`Command '${command}' not found. Please install ${command === 'pdfimages' ? 'poppler-utils' : 'mupdf-tools'}.`));
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
child.on('error', (error) => {
|
|
174
|
-
reject(new Error(`Command '${command}' not found: ${error.message}`));
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Run a command with arguments
|
|
180
|
-
*/
|
|
181
|
-
async runCommand(command, args) {
|
|
182
|
-
const { spawn } = await import('child_process');
|
|
183
|
-
return new Promise((resolve, reject) => {
|
|
184
|
-
const child = spawn(command, args, { stdio: 'pipe' });
|
|
185
|
-
let stderr = '';
|
|
186
|
-
child.stderr?.on('data', (data) => {
|
|
187
|
-
stderr += data.toString();
|
|
188
|
-
});
|
|
189
|
-
child.on('close', (code) => {
|
|
190
|
-
if (code === 0) {
|
|
191
|
-
resolve();
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
reject(new Error(`Command failed with code ${code}: ${stderr}`));
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
child.on('error', (error) => {
|
|
198
|
-
reject(error);
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Process extracted images from temp directory
|
|
204
|
-
*/
|
|
205
|
-
async processExtractedImages(tempDir, tool) {
|
|
206
|
-
const fs = await import('fs/promises');
|
|
207
|
-
const extractedPages = [];
|
|
208
|
-
try {
|
|
209
|
-
const files = await fs.readdir(tempDir);
|
|
210
|
-
const imageFiles = files.filter(file => {
|
|
211
|
-
const ext = path.extname(file).toLowerCase();
|
|
212
|
-
return ['.png', '.jpg', '.jpeg', '.ppm', '.pbm', '.pgm', '.tiff', '.tif'].includes(ext);
|
|
213
|
-
});
|
|
214
|
-
for (const [index, imageFile] of imageFiles.entries()) {
|
|
215
|
-
try {
|
|
216
|
-
const imagePath = path.join(tempDir, imageFile);
|
|
217
|
-
const imageBuffer = await fs.readFile(imagePath);
|
|
218
|
-
// Generate consistent filename
|
|
219
|
-
const ext = path.extname(imageFile);
|
|
220
|
-
const filename = `pdf_image_${index + 1}_${tool}${ext}`;
|
|
221
|
-
// Save using image extractor
|
|
222
|
-
const savedPath = await this.imageExtractor.saveImage(imageBuffer, filename);
|
|
223
|
-
if (savedPath) {
|
|
224
|
-
extractedPages.push({
|
|
225
|
-
pageNumber: index + 1,
|
|
226
|
-
imagePath: path.basename(savedPath),
|
|
227
|
-
fullPath: savedPath,
|
|
228
|
-
dimensions: {
|
|
229
|
-
width: 800, // Will be determined by actual image
|
|
230
|
-
height: 600
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
console.log(`โ
Extracted image ${index + 1} using ${tool}`);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
catch (imageError) {
|
|
237
|
-
console.warn(`โ ๏ธ Failed to process image ${imageFile}:`, imageError instanceof Error ? imageError.message : 'Unknown error');
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
catch (readError) {
|
|
242
|
-
console.warn(`โ ๏ธ Failed to read extracted images:`, readError instanceof Error ? readError.message : 'Unknown error');
|
|
243
|
-
}
|
|
244
|
-
return extractedPages;
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Create enhanced placeholder files with actual PDF content when image conversion fails
|
|
248
|
-
*/
|
|
249
|
-
async createPlaceholders(pageCount, pdfBuffer) {
|
|
250
|
-
console.log('๐ Creating enhanced image placeholders with PDF content...');
|
|
251
|
-
const extractedPages = [];
|
|
252
|
-
const maxPages = Math.min(pageCount, 3);
|
|
253
|
-
// Try to extract actual PDF text content for more informative placeholders
|
|
254
|
-
let pdfTextContent = '';
|
|
255
|
-
if (pdfBuffer) {
|
|
256
|
-
try {
|
|
257
|
-
const pdfParse = await import('pdf-parse');
|
|
258
|
-
const pdfData = await pdfParse.default(pdfBuffer);
|
|
259
|
-
pdfTextContent = pdfData.text || '';
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
console.warn('Could not extract PDF text for placeholders');
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
for (let page = 1; page <= maxPages; page++) {
|
|
266
|
-
try {
|
|
267
|
-
// Create a simple placeholder image using Sharp
|
|
268
|
-
const sharp = await import('sharp');
|
|
269
|
-
// Extract text snippet for this page (rough approximation)
|
|
270
|
-
const textPerPage = Math.floor(pdfTextContent.length / pageCount);
|
|
271
|
-
const startIndex = (page - 1) * textPerPage;
|
|
272
|
-
const pageText = pdfTextContent.slice(startIndex, startIndex + textPerPage).slice(0, 200);
|
|
273
|
-
const displayText = pageText ? pageText.replace(/\s+/g, ' ').trim() + '...' : 'No text content extracted';
|
|
274
|
-
// Create a more informative placeholder image
|
|
275
|
-
const placeholderImage = await sharp.default({
|
|
276
|
-
create: {
|
|
277
|
-
width: 800,
|
|
278
|
-
height: 600,
|
|
279
|
-
channels: 4,
|
|
280
|
-
background: { r: 245, g: 245, b: 245, alpha: 1 }
|
|
281
|
-
}
|
|
282
|
-
})
|
|
283
|
-
.png()
|
|
284
|
-
.composite([
|
|
285
|
-
{
|
|
286
|
-
input: Buffer.from(`<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
|
|
287
|
-
<rect width="800" height="600" fill="#f5f5f5" stroke="#ddd" stroke-width="2"/>
|
|
288
|
-
<text x="400" y="50" text-anchor="middle" font-family="Arial" font-size="20" fill="#333">๐ PDF Page ${page} of ${pageCount}</text>
|
|
289
|
-
<text x="400" y="100" text-anchor="middle" font-family="Arial" font-size="14" fill="#666">Content Preview:</text>
|
|
290
|
-
<foreignObject x="50" y="120" width="700" height="400">
|
|
291
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="font-family: Arial; font-size: 12px; color: #555; padding: 20px; background: white; border-radius: 8px; line-height: 1.4;">
|
|
292
|
-
${displayText.split('').map(char => char === '<' ? '<' : char === '>' ? '>' : char === '&' ? '&' : char).join('')}
|
|
293
|
-
</div>
|
|
294
|
-
</foreignObject>
|
|
295
|
-
<text x="400" y="560" text-anchor="middle" font-family="Arial" font-size="12" fill="#999">๐ง Install pdf-to-img dependencies for actual page images</text>
|
|
296
|
-
</svg>`),
|
|
297
|
-
top: 0,
|
|
298
|
-
left: 0,
|
|
299
|
-
}
|
|
300
|
-
])
|
|
301
|
-
.toBuffer();
|
|
302
|
-
const filename = `pdf_page_${page}_placeholder.png`;
|
|
303
|
-
// Use the image extractor to save the placeholder
|
|
304
|
-
const savedPath = await this.imageExtractor.saveImage(placeholderImage, filename);
|
|
305
|
-
if (savedPath) {
|
|
306
|
-
extractedPages.push({
|
|
307
|
-
pageNumber: page,
|
|
308
|
-
imagePath: path.basename(savedPath),
|
|
309
|
-
fullPath: savedPath,
|
|
310
|
-
dimensions: {
|
|
311
|
-
width: 800,
|
|
312
|
-
height: 600
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
console.log(`โ
Created image placeholder for page ${page}`);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
catch (sharpError) {
|
|
319
|
-
console.warn(`โ ๏ธ Failed to create image placeholder for page ${page}:`, sharpError instanceof Error ? sharpError.message : 'Unknown error');
|
|
320
|
-
// Fallback to simple text-based approach without Sharp conversion
|
|
321
|
-
const filename = `pdf_page_${page}_info.txt`;
|
|
322
|
-
const placeholderContent = `PDF Page ${page} - Image extraction failed\n\nPage ${page} of ${pageCount}\n\nInstall GraphicsMagick for better PDF image support.`;
|
|
323
|
-
const placeholderBuffer = Buffer.from(placeholderContent, 'utf-8');
|
|
324
|
-
// Save directly without image conversion
|
|
325
|
-
const fs = await import('fs/promises');
|
|
326
|
-
const fullPath = path.join(this.imageExtractor.imageDirectory, filename);
|
|
327
|
-
try {
|
|
328
|
-
await fs.writeFile(fullPath, placeholderBuffer);
|
|
329
|
-
extractedPages.push({
|
|
330
|
-
pageNumber: page,
|
|
331
|
-
imagePath: filename,
|
|
332
|
-
fullPath: path.resolve(fullPath)
|
|
333
|
-
});
|
|
334
|
-
console.log(`โ
Created text placeholder for page ${page}`);
|
|
335
|
-
}
|
|
336
|
-
catch (writeError) {
|
|
337
|
-
console.warn(`โ ๏ธ Failed to write placeholder for page ${page}:`, writeError instanceof Error ? writeError.message : 'Unknown error');
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
return extractedPages;
|
|
342
|
-
}
|
|
343
27
|
/**
|
|
344
28
|
* Enhance text with layout detection
|
|
345
29
|
*/
|
|
@@ -502,21 +186,6 @@ export class PDFExtractor {
|
|
|
502
186
|
return line.replace(/^\s*[-โขยท]\s+/, '- ');
|
|
503
187
|
}
|
|
504
188
|
}
|
|
505
|
-
/**
|
|
506
|
-
* Create page breaks with images
|
|
507
|
-
*/
|
|
508
|
-
async createPageBreaks(pageImages) {
|
|
509
|
-
let markdown = '';
|
|
510
|
-
for (const [i, page] of pageImages.entries()) {
|
|
511
|
-
markdown += `## Page ${page.pageNumber}\n\n`;
|
|
512
|
-
markdown += this.imageExtractor.getImageMarkdown(`Page ${page.pageNumber}`, page.imagePath);
|
|
513
|
-
markdown += '\n\n';
|
|
514
|
-
if (i < pageImages.length - 1) {
|
|
515
|
-
markdown += '---\n\n'; // Page separator
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
return markdown;
|
|
519
|
-
}
|
|
520
189
|
/**
|
|
521
190
|
* Reset internal counters
|
|
522
191
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-extractor.js","sourceRoot":"","sources":["../../src/utils/pdf-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pdf-extractor.js","sourceRoot":"","sources":["../../src/utils/pdf-extractor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "file2md",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.50",
|
|
4
4
|
"description": "A TypeScript library for converting various document types (PDF, DOCX, XLSX, PPTX, HWP, HWPX) into Markdown with image and layout preservation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|