fix(workflow): fix heic images not being accepted in image to pdf

This commit is contained in:
alam00000 committed 2026-05-08 21:56:51 +05:30
1 parent fc941350b3
commit 8b6da83ba7
7 files changed
+426 -140

No files matched your search

+16 -7
View File
@@ -1,10 +1,14 @@
import { ClassicPreset } from 'rete';
import { BaseWorkflowNode } from './base-node';
import { pdfSocket } from '../sockets';
import type { PDFData, SocketData } from '../types';
import { loadPyMuPDF } from '../../utils/pymupdf-loader.js';
import { loadPdfDocument } from '../../utils/load-pdf-document.js';
import { wfError } from '../errors';
import { pdfSocket } from '@/js/workflow/sockets';
import type { PDFData, SocketData } from '@/js/workflow/types';
import { loadPyMuPDF } from '@/js/utils/pymupdf-loader.js';
import { loadPdfDocument } from '@/js/utils/load-pdf-document.js';
import {
isValidImageFile,
preprocessImageFile,
} from '@/js/utils/image-input-utils.js';
import { wfError } from '@/js/workflow/errors';
export class ImageInputNode extends BaseWorkflowNode {
readonly category = 'Input' as const;
@@ -20,7 +24,7 @@ export class ImageInputNode extends BaseWorkflowNode {
async addFiles(fileList: File[]): Promise<void> {
for (const file of fileList) {
if (file.type.startsWith('image/')) {
if (isValidImageFile(file)) {
this.files.push(file);
}
}
@@ -55,8 +59,13 @@ export class ImageInputNode extends BaseWorkflowNode {
throw new Error(wfError('noImagesUploaded'));
}
const processedFiles: File[] = [];
for (const file of this.files) {
processedFiles.push(await preprocessImageFile(file));
}
const pymupdf = await loadPyMuPDF();
const pdfBlob = await pymupdf.imagesToPdf(this.files);
const pdfBlob = await pymupdf.imagesToPdf(processedFiles);
const bytes = new Uint8Array(await pdfBlob.arrayBuffer());
const document = await loadPdfDocument(bytes);
+79
View File
@@ -0,0 +1,79 @@
export * from './base-node';
export * from './registry';
export * from './add-blank-page-node';
export * from './adjust-colors-node';
export * from './alternate-merge-node';
export * from './background-color-node';
export * from './booklet-node';
export * from './cbz-to-pdf-node';
export * from './combine-single-page-node';
export * from './compress-node';
export * from './crop-node';
export * from './decrypt-node';
export * from './delete-pages-node';
export * from './deskew-node';
export * from './digital-sign-node';
export * from './divide-pages-node';
export * from './download-node';
export * from './download-pdf-node';
export * from './download-zip-node';
export * from './edit-metadata-node';
export * from './email-to-pdf-node';
export * from './encrypt-node';
export * from './epub-to-pdf-node';
export * from './excel-to-pdf-node';
export * from './extract-images-node';
export * from './extract-pages-node';
export * from './fb2-to-pdf-node';
export * from './fix-page-size-node';
export * from './flatten-node';
export * from './font-to-outline-node';
export * from './greyscale-node';
export * from './header-footer-node';
export * from './image-input-node';
export * from './invert-colors-node';
export * from './json-to-pdf-node';
export * from './linearize-node';
export * from './markdown-to-pdf-node';
export * from './merge-node';
export * from './mobi-to-pdf-node';
export * from './n-up-node';
export * from './ocr-node';
export * from './odg-to-pdf-node';
export * from './overlay-node';
export * from './page-numbers-node';
export * from './pages-to-pdf-node';
export * from './pdf-input-node';
export * from './pdf-to-csv-node';
export * from './pdf-to-docx-node';
export * from './pdf-to-images-node';
export * from './pdf-to-markdown-node';
export * from './pdf-to-pdfa-node';
export * from './pdf-to-svg-node';
export * from './pdf-to-text-node';
export * from './pdf-to-xlsx-node';
export * from './posterize-node';
export * from './powerpoint-to-pdf-node';
export * from './pub-to-pdf-node';
export * from './rasterize-node';
export * from './redact-node';
export * from './remove-annotations-node';
export * from './remove-blank-pages-node';
export * from './repair-node';
export * from './reverse-pages-node';
export * from './rotate-node';
export * from './sanitize-node';
export * from './scanner-effect-node';
export * from './split-node';
export * from './svg-to-pdf-node';
export * from './table-of-contents-node';
export * from './text-to-pdf-node';
export * from './timestamp-node';
export * from './vsd-to-pdf-node';
export * from './watermark-node';
export * from './word-to-pdf-node';
export * from './wpd-to-pdf-node';
export * from './wps-to-pdf-node';
export * from './xml-to-pdf-node';
export * from './xps-to-pdf-node';