今天隔壁同事要合并2个pdf,经确认已损坏,但可以在浏览器中预览,向我求救。
现在存在的问题是:
1、用wps、在线合并软件都失败
2、无法修复损坏文件
所以我打算换一个思路:
1、把pdf转化成图片
2、把图片合并成pdf
因为pdf已经损坏,所以软件无法把它转成图片,一些小机灵鬼肯定想说,截图不就好了嘛,但是截图有些弊端,会一定程度降低pdf的分辨率,还会手抖。作为一个码农,当然要用更优雅的方式解决这个问题啦。
js有个库pdf.js,可以把pdf文件转化成cavans,这样右键就能存为图片了,我用的是基于pdf.js的react-pdf,代码如下:
import { useState } from 'react';
import { Document, Page } from 'react-pdf';
function MyApp() {
const [numPages, setNumPages] = useState<number>();
const [pageNumber, setPageNumber] = useState<number>(1);
function onDocumentLoadSuccess({ numPages }: { numPages: number }): void {
setNumPages(numPages);
}
return (
<Document file="somefile.pdf" onLoadSuccess={onDocumentLoadSuccess}>
<Page pageNumber={pageNumber} />
</Document>
);
}
得到了图片之后呢,我用photoshop把图片合并成了pdf,具体操作步骤如下
保存好就成功合并损坏的pdf啦,当然啦,有些小伙伴有兴趣的话还可以自己做个小插件,一键运行生成啥的,感觉也是可行的。