2015-01-21 3 views
0

iTextSharp를 NuGet으로 업데이트 한 후 PDF 생성이 작동하지 않습니다.업데이트 후 iTextSharp가 작동하지 않습니다.

난에 4.1.2.0에서 업데이트 5.5.4.0

내 원래의 코드 업데이트 이후 나는

foreach (KeyValuePair<string, AcroFields.Item> entry in fieldsManager.Fields) 

foreach (DictionaryEntry entry in fieldsManager.Fields) 

에서 foreach 루프를 변경

using (var stream = new MemoryStream()) 
{ 
    var reader = new PdfReader(pdfPath); 
    var stp = new PdfStamper(reader, stream); 
    var writer = stp.Writer; 
    var fieldsManager = stp.AcroFields; 

    foreach (DictionaryEntry entry in fieldsManager.Fields) 
    { 
     var strEntry = entry.Key.ToString(); 
     if (strEntry == "txtNoServicio") fieldsManager.SetField(strEntry, orden.NoServicio.ToString(CultureInfo.InvariantCulture)); 
     if (strEntry == "txtFechaCreacionTicket") fieldsManager.SetField(strEntry, orden.FechaCreacionTicket.ToString("dd/MM/yyyy")); 
     if (strEntry == "txtAgenteAsignado") fieldsManager.SetField(strEntry, orden.AgenteAsignado); 
     ... 
    } 

    stp.FormFlattening = true; 
    stp.Close(); 
    reader.Close(); 
    dataBytes = stream.GetBuffer(); 
} 

return dataBytes; 

했다

나 thod는 PDF를 성공적으로 반환하지만 SetField가있는 SetValues는 PDF로 작동하지 않습니다.

아이디어가 있으십니까?

디버깅 fieldsManager.Fields에는 Values라는 속성이 들어 있으며 IsReadOnly이라는 속성은 True으로 설정되어 있습니다. 뭔가 의미가있을 수 있니?

+0

에서 어떤 버전으로 업그레이드하셨습니까? – adrianbanks

+0

4.1.2.0에서 5.5.4.0까지 –

답변

2

2008 년에 릴리스 된 버전에서 2014 년에 릴리스 된 버전으로 뛰어 올랐습니다. 6 년이이 두 버전 사이에 있습니다.

One does not simply...

문제를 재현 SSCCE을 제공하십시오 (미안 해요, 왕좌의 게임 밈을 ;-) 만드는 저항 할 수 없었다). 많은 사람들이 문제없이 iTextSharp 5.5.x로 양식을 채 웁니다. 당신이 다음 줄을 추가하면 어떻게됩니까

:이이 문제를 해결 한 후 원래의 형태가 모습을 생성에서 iTextSharp을 방지하는 설정이있는 경우

form.GenerateAppearances = true; 

ITextSharp PDFTemplate FormFlattening removes filled data

를 참조하십시오. 이전 iTextSharp 버전 은이 설정을으로 무시했습니다. 최신 버전 존중 해당 설정.

+0

정말 고마워요. 또한 내 코드를 실행하기 전에 전자 책이 stackoverflow에서 가장 좋은 itext 질문을하고 내 오래된 코드를 변경한다고 어떻게 업데이트되었는지 고려하십시오. 난 그런대로 실행 기대 결코 –

관련 문제