Note that there are some explanatory texts on larger screens.

plurals
  1. POitextsharp / MCV combining multiple forms into one PDF using bytes
    text
    copied!<p>Hi My applion is MVC3 c#, I am using itextsharp to produce PDF files for pre disgned forms. In this application I have to different forms. To generate a form I use:</p> <pre><code>public ActionResult TestPDF(long learnerID = 211, long courseID = 11) { var caseList = _studyCaseSvc.ListStudyCases().Where(x =&gt; x.Course_ID == courseID); try { MemoryStream memoryStream = new MemoryStream(); PdfConcatenate whole = new PdfConcatenate(memoryStream); foreach (var ca in caseList) { byte[] part = null; if (ca.CaseType == "CTA") { part = GenerateEvaluationCAT_PDF(learnerID, ca.ID); } else if (ca.CaseType == "CTAH") { part = GenerateEvaluationCATH_PDF(learnerID, ca.ID); } else { part = null; } if (part != null) { PdfReader partReader = new PdfReader(part); whole.AddPages(partReader); partReader.Close(); } } whole.Close(); byte[] byteInfo = memoryStream.ToArray(); SendPdfToBrowser(byteInfo); } catch (Exception ex) { } return null; } </code></pre> <p>I get this error: An item with the same key has already been added. The error happens at AddPages. So I developed this simpler test:</p> <pre><code>private void merge() { try { FileStream output = new FileStream("p3.pdf", FileMode.Create); PdfConcatenate pdfConcatenate = new PdfConcatenate(output, true); PdfReader r1 = new PdfReader("p2.pdf"); MemoryStream memoryStream = new MemoryStream(); PdfStamper pdfStamper = new PdfStamper(r1, memoryStream); pdfStamper.FormFlattening = true; pdfStamper.Close(); PdfReader r2 = new PdfReader(memoryStream.ToArray()); //pdfConcatenate.AddPages(tempReader); pdfConcatenate.Open(); int n = r1.NumberOfPages; for (int i = 1; i &lt;= n; i++) { PdfImportedPage imp = pdfConcatenate.Writer.GetImportedPage(r1, i); pdfConcatenate.Writer.AddPage(imp); } pdfConcatenate.Writer.FreeReader(r1); pdfStamper.Close(); r1.Close(); pdfConcatenate.Close(); } catch (Exception ex) { } } </code></pre> <p>Same error. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload