微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何提取页面的一部分并在itext7中写入新的PDF文件?

如何解决如何提取页面的一部分并在itext7中写入新的PDF文件?

我想将一个 PDF 页面分成 4 个象限。然后将每个象限写入单独的 PDF 页面(或文档)。我不想裁剪现有页面,而是提取每个象限的内容并将其写入新的 PDF 文件。有没有办法使用 itext7 做到这一点?

解决方法

我想提一下,itextsharp 和 itext7 的文档很糟糕,而且在很多方面都缺乏——如果你愿意读一本书,那本书“iText in Action 2nd Edition”是唯一的帮助,并且示例只是在 Java 中,有些代码在 C# 中以不同的方式实现,更不用说这仅在 itextsharp 5 上。

供将来参考 - 假设您需要等分分割,这里是可以解决的问题(这是针对 4x4 - 即 16 个部分):

public void manipulatePdf(string src,string dest)
    {  
        PdfReader reader = new PdfReader(src);
        iTextSharp.text.Rectangle pagesize = reader.GetPageSizeWithRotation(1); 
        Document document = new Document(pagesize); 
        PdfWriter writer = PdfWriter.GetInstance(document,new FileStream(dest,FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite)); 
        document.Open();  
        PdfContentByte content = writer.DirectContent; 
        PdfImportedPage page = writer.GetImportedPage(reader,1); 
        float x,y;  
        
        for (int i = 0; i< 16; i++) 
        {    
            x = -pagesize.Width * (i % 4);    
            y = pagesize.Height * (i / 4 - 3);    
            content.AddTemplate(page,4,x,y);    
            document.NewPage();  
        }
        document.Close(); 
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。