Tôi đang trong quá trình điền biểu mẫu pdf được tạo bằng Acrobat pro với iTextSharp & C# và thấy mình bị kẹt khi cố đánh dấu vào trường hộp kiểm.ItextSharp - Tự động điền một mẫu pdf sử dụng C# - Các vấn đề với hộp kiểm
Tôi có nó hoạt động cho các nút radio và hộp văn bản nhưng dường như không làm cho hộp kiểm hoạt động. Tôi cũng đã khẳng định tên hộp kiểm trong trường hợp này "Q7b" là chính xác trong các tài liệu Acrobat và có thể tìm thấy nó trên các hình thức sử dụng đoạn mã sau
private string getfieldnames(AcroFields fields)
{
StringBuilder sb = new StringBuilder();
foreach (string key in fields.Fields.Keys)
{
sb.Append(key + Environment.NewLine);
}
return sb.ToString();
}
Mã Tôi đang sử dụng để cập nhật các hộp kiểm dưới
using (MemoryStream pdfFlat = new MemoryStream())
{
PdfReader pdfReader = new PdfReader(strPath);
PdfStamper pdfStamp = new PdfStamper(pdfReader, pdfFlat);
AcroFields fields = pdfStamp.AcroFields;
//textfields
fields.SetField("Initiating_Doctor", "Doctor A");
fields.SetField("Speciality", "Surgeon");
//Radiobuttons
fields.SetField("PRELIM_Q1", "Yes");
fields.SetField("PRELIM_Q2", "No");
fields.SetField("PRELIM_Q3", "No");
fields.SetField("PRELIM_Q4", "No");
//checkbox - Set the checkbox to checked but this does not work.
fields.SetField("Q7b", "Yes");
pdfReader.Close();
pdfStamp.FormFlattening = true;
pdfStamp.FreeTextFlattening = true;
pdfStamp.Writer.CloseStream = false;
pdfStamp.Close();
}
Mọi trợ giúp sẽ được đánh giá cao.
Brad
Cảm ơn sự giúp đỡ của bạn Mark. Sau khi nghỉ ngơi và xem xét kỹ hơn tài liệu pdf, tôi thấy thuộc tính Giá trị xuất của hộp kiểm có giá trị lạ. thiết lập này để Bật và thay đổi mã để phù hợp đã giải quyết các vấn đề fields.SetField ("Q7b", "On"); –
cẩn thận ... rằng "giá trị kỳ lạ" có thể là cần thiết bất cứ nơi nào dưới hình thức thường được đệ trình. Nếu bạn chỉ sử dụng nó trong nội bộ, tốt thôi. Nhưng nếu bạn cố gắng quay trở lại mục tiêu gửi ban đầu, bạn sẽ cần dịch lại giá trị trường đó. Dễ dàng hoàn nguyên hơn và sử dụng giá trị lạ trong mã của bạn. –
Cảm ơn bạn đã cảnh báo. Đó là một điều nội bộ để chaning giá trị sẽ không có dòng chảy có hiệu lực. –