用于在单个页面上打印多个PDF的脚本

时间:2018-02-28 22:31:34

标签: windows matlab pdf cmd acrobat

我已经为我的112个实验中的每个实验生成了分析中的数据作为PDF(实验是由8个子会话组成的会话;总共有14个实验)。每个实验的图形PDF都存储在一个单独的文件夹中,对于每个实验,我有1到9个图形PDF。

为了总结实验结果,我希望将实验的所有数据显示在一页PDF上。为实现这一目标,我一直在:

  1. 在MATLAB中生成数字;
  2. 使用MATLAB代码将每个图形保存为单独的PDF(按文件夹组织,因此有112个文件夹);
  3. 使用pdftk将实验的图形PDF组合成一个带有批处理脚本的最多9页PDF;
  4. 然后使用“多页”页面布局选项将结果PDF打印到另一个PDF,页面/页面,水平页面顺序,打印页面边框和横向页面(即使少于9个图形PDF用于一个实验,我仍然使用9页/表选项。
  5. 对于每个实验,我生成我的图形,并使用以下MATLAB代码将它们打印成PDF:

    figDir = ['G:\Figures\' session '\' sub_session '\'];
    for i = 1:num_figs
        figure(i)
        fig = gcf;
        fig.PaperPositionMode = 'auto';
        fig_pos = fig.PaperPosition;
        fig.PaperSize = [fig_pos(3) fig_pos(4)];
    
        print([figDir 'fig' num2str(i)], '-dpdf')
    end
    

    此处给出了步骤3的MATLAB代码:

    myDir = 'G:\Figures';
    
    sessions = dir(myDir);
    sessions(1:2) = []; % to get rid of . and ..
    
    for i = 1:length(sessions)
        sub_sessions = dir([myDir '\' sessions(i).name]);
        sub_sessions(1:2) = []; % to get rid of . and ..
    
        for j = 1:length(sub_sessions)
            cd([myDir '\' sessions(i).name '\' sub_sessions(j).name])
            eval(['!pdftk *.pdf cat output ' sessions(i).name '_' sub_sessions(j).name '.pdf'])
        end
    end
    

    我的瓶颈在于我的列表中的第4步,因为我必须手动浏览每个实验的组合PDF(步骤3的结果,其中包含最多9页)并手动选择要打印的选项。其他所有东西都在几秒钟内完成,但最后一步的所有指向和点击大约需要45分钟。有什么方法可以通过某种脚本加速吗?

    我正在使用Windows 7 64位并拥有Adobe Acrobat X Pro。

0 个答案:

没有答案