Regarding your query related to Aspose.pdf.kit, following are the answers to your questions.
- Ability to open password protected documents and merge them together.
Answer) you can open any password protected pdf and can merge them. For this purpose, Aspose.pdf.kit has a class named PdfFileEditor, you can set the value for Ownerpassword property. For information on how to merge pdf files, please visit Concatenate PDF Documents
- To generate table of contents based on documents section
Answer) I am sorry to inform you that currently this feature is not supported by Aspose.pdf.kit
- Ability to take documents to be merged from byte array or URI reference
Answer) Aspose.pdf.kit supports concatenation of pdf files, if the input format of pdf file is, memory stream, IO stream or string variable containing path to the input pdf file. Your requirement can be achieved programmatically, if we take the input in the form of Byte array and convert it to Memory stream before we pass it merge the pdf files. For information on how to convert the byte array into memory stream, please visit https://docs.microsoft.com/en-us/dotnet/api/system.io.memorystream
- Ability to return merged document as byte array
Answer) you can achieve your requirement, once the files have been concatenated, return the output as memory stream and again convert it back into Byte array.
- Ability to control security of the merged document which include SAVE.The option to disable saving of the document is mandatory.
Answer) Aspose.pdf.kit supports the feature to set privileges over the pdf file, for related information on how to set privileges over pdf file, please visit Set Privileges on PDF Document.
one more thing, while setting security permissions, please use DocumentPrivilege instead of PdfPrivilege