iText/iTextSharp (iTextSharp 5.3.3 via NuGet)의 XFA Forms에 매우 이상한 문제가 있습니다. 정적 인 XFA 스타일의 양식을 작성하려고하지만 변경 사항이 적용되지 않습니다.iTextSharp의 고정 XFA 양식에서 XFA 데이터를 설정하고 저장하려면 어떻게해야합니까?
필자는 iText와 iTextSharp 코드 샘플의 두 번째 버전을 모두 컨설팅하고 있습니다.
배경 : 컴퓨터에서 Adobe Acrobat을 사용하여 수동으로 채울 수있는 XFA 양식이 있습니다. iTextSharp를 사용하여 Xfa XML 데이터가 무엇인지 읽고 데이터 구조를 볼 수 있습니다. 나는 본질적으로 iText로 그것을 모방하려고 노력하고있다.
데이터가 내가 Acrobat에서 데이터를 추가하고 저장할 때처럼 보이는 무엇 :
여기
나는에 읽으려고하고있는 XML 파일입니다 (주이 데이터 세트에 대해서만 특정 섹션) (이 해당 파일의 전체 맥락이다 주) : 기존의 데이터를 대체
그러나
, 나는의 교체 XML 파일의 경로를 전달하고 데이터를 설정하려고 할 때, 오류가 발생하지 않고 새로 작성된 파일 (데이터가 대체 된 원본의 복사본)이 업데이트되지만 데이터는 업데이트되지 않습니다. 새 파일이 만들어지고 열 수는 있지만 파일에 데이터가없는 것을 볼 수 있습니다.
여기서 어떤 도움이 매우 인정 될 것이다 http://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/book/iTextExamplesWeb/iTextExamplesWeb/iTextInAction2Ed/Chapter08/XfaMovie.cs
public void Generate(string sourceFilePath, string destinationtFilePath, string replacementXmlFilePath)
{
PdfReader pdfReader = new PdfReader(sourceFilePath);
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(pdfReader, ms))
{
XfaForm xfaForm = new XfaForm(pdfReader);
XmlDocument doc = new XmlDocument();
doc.Load(replacementXmlFilePath);
xfaForm.DomDocument = doc;
xfaForm.Changed = true;
XfaForm.SetXfa(xfaForm, stamper.Reader, stamper.Writer);
}
var bytes = ms.ToArray();
File.WriteAllBytes(destinationtFilePath, bytes);
}
}
의 변형 인 제 시간에 대한 데이터를 대체하거나 채우는 데에 이용되는 코드이다.
온라인 데모를 사용해 보셨습니까? http://demo.itextsupport.com/xfademo를 참조하십시오. 데모가 작동하는 경우 코드에 문제가 있습니다. 그렇지 않으면 iText에 문제가 있습니다. 후자의 경우 데모를 실행 한 후 피드백 양식을 작성하십시오. –
감사 브루노. 나는 데모를 시도하지 않았지만 지금은 가지고있다. 온라인 데모를 시도하고 XFA 파일을 평평하게하지 않을 경우 (원하는 경우) 필드가 데모에서 업데이트됩니다. – jon333