我发现使用最新库(APDFL15.0.4PlusP4a 和 APDFL15.0.4PlusP2e)插入和保存 PDF 文件的速度很慢。当页数超过 300 时会发生缓慢。
下面的代码使用 PDDocSave 通过插入一个每个 40 页的临时(累积)文档来保存一个 450 页的文档。
当替换为旧版本 (APDFL15.0.1PlusP1h) 时,性能更好。
// Assemble accumulated files
for(int j=1;j<=accumCount;j++)
{
sprintf(accumName,ACCUM_FILETEMPLATE, j);
TSTBUG1(1,"Opening accumulator :%s",accumName);
pdDoc2 = MyPDDocOpen(accumName);
if (!pdDoc2)
{
SYS_ERR "Unable to open file %s \n",accumName);
return PDFASSEMBLY_FAILURE;
}
PDDocInsertPages (pdDoc1,PDLastPage,pdDoc2, 0, PDAllPages,PDInsertAll, NULL,NULL,NULL,NULL);
TSTBUG1(1,"Inserting accumulator : %d\n",j);
PDDocRelease(pdDoc2);
PDDocClose(pdDoc2);
unlink (accumName);
}
TSTBUG1(20,"Saving file =>%s<=",ptrMasterPDFDocumentList->ptrHeader->strOutputPDFFile);
PDDocSave(pdDoc1,PDSaveFull|PDSaveLinearized,
ASPathFromPlatformPath(ptrMasterPDFDocumentList->ptrHeader->strOutputPDFFile),
ASGetDefaultFileSys(),NULL,NULL);