Я использую библиотеку EVOPDF для объединения нескольких документов PDF в один документ PDF.
Когда входные документы PDF имеют пароли владельца, выходной документ содержит только пустые страницы.
Я вижуItext7 имеет функцию удаления пароля владельца с помощью следующей строки: reader.SetUnethicalReading (true);
Как это можно сделать в EVOPDF или с использованием библиотеки с открытым или открытым исходным кодом? Потому что с itext7 вам нужно платить за коммерческое использование, а я уже плачу за лицензию EVOPDF.
Когда документы PDF не содержат пароли владельцев или я их вручную удаляю, объединение работает правильно
List<Byte[]> totalBytes = new List<byte[]>();
byte[] pdfBytes = null;
//Populate the totalBytes List with the PDF byte arrays
MemoryStream ms1 = new MemoryStream(totalBytes[0])
MemoryStream ms2 = new MemoryStream(totalBytes[1])
pdfMerge.AppendPDFStream(ms1);
pdfMerge.AppendPDFStream(ms2);
pdfBytes = pdfMerge.RenderMergedPDFDocument();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "filename=" + savedFilename);
Response.AddHeader("Content-Length", pdfBytes.Length.ToString());
Response.BinaryWrite(pdfBytes.ToArray());
pdfBytes = null;
Response.Flush();
Response.Close();
Response.End();