我使用iTextSharp将多页AcroForms分成单页AcroForm,但我无法保留'表格的完整功能:
这是我使用的代码:
using (PdfReader reader = new PdfReader(options.InputFile))
{
string basename = Path.GetFileNameWithoutExtension(options.InputFile);
for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++)
{
string filename;
Document document;
PdfCopy copy;
document = new Document();
filename = String.Format("{0}.{1}.pdf", basename, pagenumber);
copy = new PdfCopy(document, new FileStream(filename, FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, pagenumber));
document.Close();
}
return reader.NumberOfPages;
}
生成的pdf页面表现为完全正常工作的AcroForm(当通过Acrobat Reader使用时),但如果我尝试列出&#39;通过iTextSharp他们每个人的领域我找不到一个字段......
P.S。我找到了一个正确分割表格的在线服务&#39;。许多软件(PDF Split和Merge Basic for examle)的行为与我的相似。
我哪里错了?
祝你好运, 麦克
答案 0 :(得分:1)
PdfReader reader = new PdfReader(options.InputFile);
List<int> pages;
pages = new List<int>();
int n_pages = reader.NumberOfPages;
string basename = Path.GetFileNameWithoutExtension(options.InputFile);
for (int pagenumber = 1; pagenumber <= n_pages; pagenumber++)
{
using (PdfReader page_reader = new PdfReader(options.InputFile))
{
string filename;
Document document;
PdfCopy copy;
pages.Clear();
filename = String.Format("{0}.{1}.pdf", basename, pagenumber);
document = new Document();
copy = new PdfCopy(document, new FileStream(filename, FileMode.Create));
copy.SetMergeFields();
document.Open();
pages.Add(pagenumber);
copy.AddDocument(page_reader, pages);
document.Close();
}
}
return n_pages;