iTextSharp - Usando PDFAction.GotoLocalPage em PDF mesclado

Eu escrevi algum código que mescla vários PDFs em um único PDF que eu exibo no MemoryStream. Isso funciona muito bem. O que preciso fazer é adicionar um índice ao final do arquivo com links para o início de cada PDF individual. Planejei fazer isso usando a ação GotoLocalPage, que tem uma opção para números de página, mas parece não funcionar. Se eu alterar a ação para o código abaixo para um dos impressos como PDFAction.FIRSTPAGE, funciona bem. Isso não funciona porque eu estou usando o objeto PDFCopy para o parâmetro writer de GotoLocalPage?

Document mergedDoc = new Document();
MemoryStream ms = new MemoryStream();
PdfCopy copy = new PdfCopy(mergedDoc, ms);
mergedDoc.Open();

MemoryStream tocMS = new MemoryStream();
Document tocDoc = null;
PdfWriter tocWriter = null;

for (int i = 0; i < filesToMerge.Length; i++)
{
     string filename = filesToMerge[i];

     PdfReader reader = new PdfReader(filename);
     copy.AddDocument(reader);

     // Initialise TOC document based off first file
     if (i == 0)
     {
          tocDoc = new Document(reader.GetPageSizeWithRotation(1));
          tocWriter = PdfWriter.GetInstance(tocDoc, tocMS);
          tocDoc.Open();
     }

     // Create link for TOC, added random number of 3 for now
     Chunk link = new Chunk(filename);
     PdfAction action = PdfAction.GotoLocalPage(3, new PdfDestination(PdfDestination.FIT), copy);
     link.SetAction(action);
     tocDoc.Add(new Paragraph(link));
}

// Add TOC to end of merged PDF
tocDoc.Close();
PdfReader tocReader = new PdfReader(tocMS.ToArray());
copy.AddDocument(tocReader);

copy.Close();

displayPDF(ms.ToArray());

Eu acho que uma alternativa seria vincular a um elemento nomeado (em vez do número da página), mas não consigo ver como adicionar um elemento 'invisível' ao início de cada arquivo antes de adicionar ao documento mesclado?

questionAnswers(1)

yourAnswerToTheQuestion