如何合并PDF文件并设置合并后文件属性?

在档案系统中对文件管理有需求的客户经常问到: 如何将多个文件合并,并且合并后的文件如何保留源文件目录, 标签? 等等.

java示例代码如下:

CombineDocumentInfoArray info_array = new CombineDocumentInfoArray();
info_array.add(new CombineDocumentInfo( "AboutFoxit1.pdf", ""));
info_array.add(new CombineDocumentInfo( "AboutFoxit2.pdf", ""));
info_array.add(new CombineDocumentInfo( "AboutFoxit3.pdf", ""));

String savepath =  "Test_Combined.pdf";
//源PDF文件的书签将输出到组合结果PDF文件。
int option = (int)(e_CombineDocsOptionBookmark

        //具有相同名称的字段将在组合结果PDF文件中重命名。
        | e_CombineDocsOptionAcroformRename
        //源PDF文件的结构树将输出到组合结果PDF文件。
        | e_CombineDocsOptionStructrueTree
        //源PDF文件的OutputIntents将输出到组合结果PDF文件
        | e_CombineDocsOptionOutputIntents
        //源PDF文件的“OCProperties”将输出到组合结果PDF文件。
        | e_CombineDocsOptionOCProperties
        //源PDF文件的“MarkInfo”将输出到组合结果PDF文件。
        | e_CombineDocsOptionMarkInfos
        //源PDF文件的页面标签将输出到组合结果PDF文件
        | e_CombineDocsOptionPageLabels
        //源PDF文件的“Destins”名称树和“EmbeddedFiles”名称树将输出到组合结果PDF文件中。
        | e_CombineDocsOptionNames
        //将使用对象流来生成组合结果PDF文件,以减小结果文件的大小。
        | e_CombineDocsOptionObjectStream
        //源PDF文件中的重复流对象将输出到组合结果PDF文件中
        | e_CombineDocsOptionDuplicateStream);
Progressive progressive = Combination.startCombineDocuments(savepath, info_array, option, null);
if (progressive.getRateOfProgress() != 100) {
    int state = Progressive.e_ToBeContinued;
    while (Progressive.e_ToBeContinued == state) {
        state = progressive.resume();
    }
}
即可合并PDF文件并设置合并后想要的文件属性。