要想做个pdf工具箱,虽然说pdf的开源框架是很多的,但是真正要做很多的UI设计、用户交互,
还是蛮麻烦的,要花的时间很多,要把产品打磨出来是真的不容易,
开源的框架,有python的、Java的、nodejs的各种框架,能选的倒是很多。
目前已经用代码实现了:
核心的代码,是一个难点;
设计用户的操作界面、写一堆代码实现用户的交互操作,也是很麻烦的
比如,再导入很多图片,转换PDF的时候,你需要做到图片文件的移动、上移下移、删除等交互,用很多代码来实现功能
function displayFile(fileData, index) {
const fileList = document.getElementById('fileList');
const fileItem = document.createElement('div');
fileItem.className = 'file-item';
fileItem.dataset.index = index;
const img = document.createElement('img');
img.src = fileData.img.src;
const info = document.createElement('div');
info.innerHTML = `<strong>${fileData.name}</strong><br>Size: ${fileData.size}<br>Resolution: ${fileData.resolution}`;
const upButton = document.createElement('button');
upButton.innerText = '上移';
upButton.className = 'el-button el-button--default is-plain el-button--mini'
upButton.addEventListener('click', () => moveFile(index, 'up'));
const downButton = document.createElement('button');
downButton.innerText = '下移';
downButton.className = 'el-button el-button--default is-plain el-button--mini'
downButton.addEventListener('click', () => moveFile(index, 'down'));
const topButton = document.createElement('button');
topButton.innerText = '放到顶部';
topButton.className = 'el-button el-button--default is-plain el-button--mini'
topButton.addEventListener('click', () => moveFile(index, 'top'));
const bottomButton = document.createElement('button');
bottomButton.innerText = '放到底部';
bottomButton.className = 'el-button el-button--default is-plain el-button--mini'
bottomButton.addEventListener('click', () => moveFile(index, 'bottom'));
const deleteButton = document.createElement('button');
deleteButton.innerText = '删除';
deleteButton.className = 'el-button el-button--danger is-plain el-button--mini'
deleteButton.addEventListener('click', () => deleteFile(index));
fileItem.appendChild(img);
fileItem.appendChild(info);
fileItem.appendChild(upButton);
fileItem.appendChild(downButton);
fileItem.appendChild(topButton);
fileItem.appendChild(bottomButton);
fileItem.appendChild(deleteButton);
fileList.appendChild(fileItem);
}