Tôi có mẫu PDF có biểu mẫu có bật tính năng Mở rộng. Sau khi điền vào các lĩnh vực của mẫu này sử dụng iTextSharp, một người dùng với Acrobat Reader nhận được thông báo lỗi:Tắt các tính năng mở rộng với iTextSharp
Tài liệu này kích hoạt các tính năng mở rộng trong Adobe Reader. Tài liệu có đã được thay đổi kể từ khi được tạo và sử dụng các tính năng mở rộng không còn là . Vui lòng liên hệ với tác giả để biết phiên bản gốc của tài liệu này.
Tôi googled một chút nhưng tất cả các bài viết nói về "cho phép" các tính năng mở rộng, tuy nhiên, tôi muốn các trường mẫu vẫn tàn tật và mở rộng các tính năng tắt
Dưới đây là một số mẫu mã mà tôi đang sử dụng:
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
// PdfStamper, which will create
var stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
if (fieldKey.Equals("Retailer Name"))
form.SetField(fieldKey, retailerName);
}
// “Flatten” the form so it wont be editable/usable anymore
stamper.FormFlattening = true;
stamper.Close();
pdfReader.Close();
}
Có thể bạn không nên lưu, nhưng crea te một trường hợp mới của nó thay vì với iTextSharp?Kết quả là không có thay đổi, bởi vì bạn vừa tạo lại tài liệu? Tôi không quen với các tính năng mở rộng PDF hoặc iTextSharp. Mã của bạn liên quan đến việc sử dụng iTextSharp trông như thế nào? Tôi hiện đang đọc Java API nhưng nó rất lớn ... –
@Mike: Tôi đang tạo một phiên bản mới. Tôi đã cập nhật câu hỏi để hiển thị mã tôi đang sử dụng. – Jags