身为一个RA人,和PDF打交道是家常便饭,某些PDF文件如CRF(病例报告表),生物统计报告有大量空白页,手动删除非常耗时。今天想和大家分享一下在Adobe Acrobat专业版(版本不限,8/9/X/XI/DC均可)中通过编写JavaScript代码自动删除空白页的方法,JavaScript是一种函数优先的轻量级解释型编程语言,Acrobat通过JavaScript封装并开放了一部分对象,使得我们可以用很简洁的代码实现很多功能(操作书签、链接、页面等等)。以下代码从最后一页开始逆序遍历当前PDF文件所有页面,对总字符数为0的页面进行删除,最后生成一个弹窗提示用户删除了哪些空白页:
var totalPages = this.numPages;
var blankpages = new Array();
var t1 = app.thermometer;
t1.duration = totalPages;
t1.begin();
for (var i = totalPages - 1; i >= 0 ; i--)
{
t1.value = (totalPages - i);
t1.text = "Checking page " + (totalPages - i) + " of " + totalPages;
numWords = this.getPageNumWords(i);
if (numWords == 0)
{
this.deletePages({nStart: i, nEnd: i});
blankpages.push(i + 1);
}
if (t1.cancelled) break;
}
t1.end();
app.alert("空白页 " + blankpages.sort(sortNumber) + " 已删除。", 3);
function sortNumber(a,b)
{
return a - b
}
怎么使用上面的代码呢?首先使用Adobe Acrobat专业版打开待处理的PDF文件,在英文输入法状态下使用Ctrl+J快捷键调出“JavaScript调试程序”,把上面的代码粘贴到控制台,Ctrl+A全选所有代码,Ctrl+Enter执行即可。小格在代码中加上了进度条和汇总被删除页码的弹窗
发表评论 取消回复