mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-11 09:23:36 +01:00
fix(workflow): fix heic images not being accepted in image to pdf
This commit is contained in:
1 parent
fc941350b3
commit
8b6da83ba7
7 files changed
+426
-140
No files matched your search
@@ -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);
|
||||
|
||||
|
||||
@@ -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';
|
||||
Reference in new issue
Block a user