mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-08-17 21:25:47 +02:00
Add 'Remove duplicate fonts' option to PDF merge functionality
This commit is contained in:
@@ -19,7 +19,8 @@
|
||||
"name": "Merge PDF",
|
||||
"subtitle": "Combine multiple PDFs into one file. Preserves Bookmarks.",
|
||||
"retainPageLabels": "Keep original page labels from each file",
|
||||
"retainPageLabelsHint": "Off (default): the merged PDF uses natural page numbering 1–N. On: each file's original page labels are preserved (may produce duplicate labels)."
|
||||
"retainPageLabelsHint": "Off (default): the merged PDF uses natural page numbering 1–N. On: each file's original page labels are preserved (may produce duplicate labels).",
|
||||
"removeDuplicateFonts": "Remove duplicate fonts"
|
||||
},
|
||||
"splitPdf": {
|
||||
"name": "Split PDF",
|
||||
|
||||
@@ -21,7 +21,14 @@ function loadCpdf(cpdfUrl) {
|
||||
}
|
||||
|
||||
self.onmessage = async function (e) {
|
||||
const { command, files, jobs, cpdfUrl, retainPageLabels } = e.data;
|
||||
const {
|
||||
command,
|
||||
files,
|
||||
jobs,
|
||||
cpdfUrl,
|
||||
retainPageLabels,
|
||||
removeDuplicateFonts,
|
||||
} = e.data;
|
||||
|
||||
if (!cpdfUrl) {
|
||||
self.postMessage({
|
||||
@@ -43,11 +50,16 @@ self.onmessage = async function (e) {
|
||||
}
|
||||
|
||||
if (command === 'merge') {
|
||||
mergePDFs(files, jobs, retainPageLabels === true);
|
||||
mergePDFs(
|
||||
files,
|
||||
jobs,
|
||||
retainPageLabels === true,
|
||||
removeDuplicateFonts === true
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
function mergePDFs(files, jobs, retainPageLabels) {
|
||||
function mergePDFs(files, jobs, retainPageLabels, removeDuplicateFonts) {
|
||||
try {
|
||||
const loadedPdfs = {};
|
||||
const pdfsToMerge = [];
|
||||
@@ -90,7 +102,7 @@ function mergePDFs(files, jobs, retainPageLabels) {
|
||||
const mergedPdf = coherentpdf.mergeSame(
|
||||
pdfsToMerge,
|
||||
retainPageLabels,
|
||||
true,
|
||||
removeDuplicateFonts,
|
||||
rangesToMerge
|
||||
);
|
||||
|
||||
|
||||
@@ -389,12 +389,17 @@ export async function merge() {
|
||||
'retain-page-labels'
|
||||
) as HTMLInputElement | null;
|
||||
|
||||
const removeDuplicateFontsCheckbox = document.getElementById(
|
||||
'remove-duplicate-fonts'
|
||||
) as HTMLInputElement | null;
|
||||
|
||||
const message: MergeMessage = {
|
||||
command: 'merge',
|
||||
files: filesToMerge,
|
||||
jobs: jobs,
|
||||
cpdfUrl: WasmProvider.getUrl('cpdf')! + 'coherentpdf.browser.min.js',
|
||||
retainPageLabels: retainCheckbox?.checked ?? false,
|
||||
removeDuplicateFonts: removeDuplicateFontsCheckbox?.checked ?? false,
|
||||
};
|
||||
|
||||
mergeWorker.postMessage(
|
||||
|
||||
@@ -18,6 +18,7 @@ export interface MergeMessage {
|
||||
jobs: MergeJob[];
|
||||
cpdfUrl?: string;
|
||||
retainPageLabels?: boolean;
|
||||
removeDuplicateFonts?: boolean;
|
||||
}
|
||||
|
||||
export interface MergeSuccessResponse {
|
||||
|
||||
@@ -270,6 +270,22 @@
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<label
|
||||
class="mt-4 flex items-start gap-2 text-sm text-gray-300 cursor-pointer"
|
||||
>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="remove-duplicate-fonts"
|
||||
class="mt-0.5 w-4 h-4 rounded text-indigo-600 bg-gray-700 border-gray-600"
|
||||
/>
|
||||
<span
|
||||
class="font-medium"
|
||||
data-i18n="tools:mergePdf.removeDuplicateFonts"
|
||||
>
|
||||
Remove duplicate fonts
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<button id="process-btn" class="btn-gradient w-full mt-6">
|
||||
Merge PDFs
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user