Itext 7 SplitByOutlines-最终文档保持打开状态,可以';不要关门

Itext 7 SplitByOutlines-最终文档保持打开状态,可以';不要关门,itext,itext7,Itext,Itext7,我已经编写了一个自定义拆分器来按大纲/书签拆分我的PDF。它可以工作,但问题是最后一个文档仍然打开并且已损坏。文档显示有71个大纲,但拆分器仅返回70个,即使它创建了71个文档 以下是自定义拆分器: class CustomSplitter : PdfSplitter { private int _order; private readonly string _destinationFolder; private readonly string _podName;

我已经编写了一个自定义拆分器来按大纲/书签拆分我的PDF。它可以工作,但问题是最后一个文档仍然打开并且已损坏。文档显示有71个大纲,但拆分器仅返回70个,即使它创建了71个文档

以下是自定义拆分器:

class CustomSplitter : PdfSplitter
{
    private int _order;
    private readonly string _destinationFolder;
    private readonly string _podName;
    private readonly IList<string> _splitFileNames;

    public CustomSplitter(PdfDocument pdfDocument, string destinationFolder, string podName, IList<string> splitFileNames) : base(pdfDocument)
    {
        _destinationFolder = destinationFolder;
        _order = 0;
        _podName = podName;
        _splitFileNames = splitFileNames;
    }

    protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
    {
        string splitFileName = _destinationFolder + "\\" + _podName + _order++ + ".pdf";
        _splitFileNames.Add(splitFileName);
        return new PdfWriter(splitFileName);
    }
} 
类自定义拆分器:PdfSplitter
{
私人国际秩序;
私有只读字符串_destinationFolder;
私有只读字符串_podName;
私有只读IList_拆分文件名;
公共CustomSplitter(PdfDocument PdfDocument、string destinationFolder、string podName、IList SplitFileName):基本(PdfDocument)
{
_destinationFolder=destinationFolder;
_顺序=0;
_podName=podName;
_splitfilename=splitfilename;
}
受保护的重写PdfWriter GetNextPDWriter(PageRange documentPageRange)
{
string splitFileName=\u destinationFolder+“\\”+\u podName+\u order++.pdf”;
_splitFileName.Add(splitFileName);
返回新的PdfWriter(splitFileName);
}
} 
我需要跟踪文件的名称,以便可以重命名它们。我使用以下代码调用自定义拆分器:

IList<string> splitFileNames = new List<string>();
PdfSplitter pdfSplitter = new CustomSplitter(pdfDoc, yearDir, fileName, splitFileNames);
IList<PdfDocument> splitDocs = pdfSplitter.SplitByOutlines(outlineNames);
IList splitFileNames=new List();
PdfSplitter PdfSplitter=新的CustomSplitter(pdfDoc,yearDir,fileName,splitfilename);
IList splitDocs=pdfSplitter.SplitByOutlines(大纲视图名称);
这是我第一次在这里发帖。我搜索了一下,没有发现任何使用SplitByOutlines的内容


谢谢。

您好,请附上PDF以重现问题您好,我该怎么做?我看不到附加文件的方法。只需使用任何文件共享服务(OneDrive、Dropbox等)并将链接发布到该文件即可。