0
iTextSharp를 사용하여 PDF 템플릿을 읽은 다음 양식 채우기를 자동화하려고합니다. 템플릿은 LiveCycle Developer로 작성되었습니다. 다음 코드는 무엇이 잘못되었는지는 모르지만 양식 값은 변경되지 않습니다.서식 파일에서 양식을 읽고 iTextSharp로 채우려면 어떻게해야합니까?
누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까? iText의 C# 버전에 대한 좋은 설명서를 찾는 것은 어렵습니다.
private void button_fill_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
using (MemoryStream ms = new MemoryStream())
{
PdfReader pdfReader = new PdfReader(ofd.FileName);
PdfStamper pdfStamp = new PdfStamper(pdfReader, ms);
AcroFields fields = pdfStamp.AcroFields;
foreach (KeyValuePair<string, AcroFields.Item> f in fields.Fields)
{
// this message is never displayed
MessageBox.Show("key: " + f.Key);
}
//textfields
// this one is working, and showing the value saved in the template
MessageBox.Show("FakeDatabase_Table1_Company: " + fields.GetField("FakeDatabase_Table1_Company"));
// this part returns a false value, and not changing the field
MessageBox.Show("Set: " + fields.SetField("FakeDatabase_Table1_Company", "Testing"));
try
{
fields.SetField("FakeDatabase_Table1_Company", "Coca-Cola");
}
catch (Exception e2) { MessageBox.Show(e2.Message); }
pdfReader.Close();
pdfStamp.FormFlattening = true;
pdfStamp.FreeTextFlattening = true;
pdfStamp.Writer.CloseStream = false;
pdfStamp.Close();
Process.Start(ofd.FileName);
}
}
}
은 try/캐치 .. 아무것도 출력하지 않으며 그것은 코드가 괜찮다고 밝혀 아무것도
이 답변으로 표시 할 수 있습니다. 관련 코드 줄을 포함해도 될까요? – Adam
관련 코드 줄이 없었으므로 LiveCycle과 함께 PDF를 저장할 때 옵션입니다. 나는 당신이 물어 봤기 때문에 개정 된 코드를 포함 시켰지만, 구 버전과도 잘 작동 할 것이다. – Mike