首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用itextsharp读取marge可填充的pdf数据

如何使用itextsharp读取marge可填充的pdf数据
EN

Stack Overflow用户
提问于 2018-04-13 14:21:44
回答 1查看 421关注 0票数 2

我有两个可填充的pdf文件,并做了代码,将这些pdfs合并成一个pdf。下面是我的密码。

代码语言:javascript
复制
public void PDFSplit()
{
    List<string> files=new List<string>();
    files.Add(Server.MapPath("~/Template/sample_pdf.pdf"));
    files.Add(Server.MapPath("~/Template/temp/sample_pdf.pdf"));
    //call method
    Merge(files, Server.MapPath("~/Template/sample_pdf_123.pdf"));
}

//Merge pdf
public  void Merge(List<String> InFiles, String OutFile)
{
    using (FileStream stream = new FileStream(OutFile, FileMode.Create))
    using (iTextSharp.text.Document doc = new iTextSharp.text.Document())
    using (PdfCopy pdf = new PdfCopy(doc, stream))
    {
        doc.Open();

        PdfReader reader = null;
        PdfImportedPage page = null;

        InFiles.ForEach(file =>
        {
            reader = new PdfReader(file);

            for (int i = 0; i < reader.NumberOfPages; i++)
            {
                page = pdf.GetImportedPage(reader, i + 1);
                pdf.AddPage(page);
            }

            pdf.FreeReader(reader);
            reader.Close();
        });
    }
}

代码运行良好,但问题是,当我试图读取新生成的合并文件时,它没有使用AcroFields显示字段。

代码语言:javascript
复制
//To read pdf data
PdfReader reader = null;

reader = new PdfReader(Server.MapPath("~/Template/sample_pdf_123.pdf"));

AcroFields pdfFormFields = reader.AcroFields;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-14 12:28:55

您无法标记错误的PDF文件,因为您使用的是旧版本的iText。请升级到iText 7用于.NET,并阅读iText 7入门教程,更具体地说是第六章,上面写着:

合并表格

这是怎么做到的:

代码语言:javascript
复制
PdfDocument destPdfDocument = new PdfDocument(new PdfWriter(dest));
PdfDocument[] sources = new PdfDocument[] {
    new PdfDocument(new PdfReader(SRC1)),
    new PdfDocument(new PdfReader(SRC2)) };
PdfPageFormCopier formCopier = new PdfPageFormCopier();
foreach (PdfDocument sourcePdfDocument in sources) {
    sourcePdfDocument.CopyPagesTo(1,
        sourcePdfDocument.GetNumberOfPages(), destPdfDocument, formCopier);
    sourcePdfDocument.Close();
}
destPdfDocument.Close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49819174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档