删除PDF分页符

本文关键字:分页 PDF 删除 | 更新日期: 2023-09-27 18:29:44

如何从pdf中删除分页符,使输出为单个"页面"pdf?因此,如果一个普通页面是400x900,而我有4个页面,那么得到的文件将是1600x900。我以前为Tif文件做过这件事(删除多页Tif中的分页符以形成一个长页面),但我想用PDF做这件事。我可以转换成ps,删除任何表示"分页"的代码,然后转换回pdf吗?

删除PDF分页符

这可以在iTextSharp库中通过使用单列PdfTable并根据页数动态更改文档大小来完成。

你当然需要一些参考iTextSharp DLL在这里找到

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

这里有一个简单的例子:

public static void MergePages()
{
    using (PdfReader reader = new PdfReader(@"C:'Users'cmilne'Desktop'AA0081913.pdf"))//Original PDF containing page breaks. 
    {
        int pages = reader.NumberOfPages;
        float postProcessPageHeight = 0;
        float postProcessPageWidth = 0;
        for (int p = 1; p <= bill.PageCount; p++)
        {
            var size = bill.PdfReader.GetPageSize(p);
            postProcessPageHeight += (size.Height);
            if (size.Width > postProcessPageWidth)
                postProcessPageWidth = (size.Width);
        }
        var rect = new Rectangle(postProcessPageWidth, postProcessPageHeight);
        using (Document document = new Document(rect, 0, 0, 0, 0)) 
        { 
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:'Users'cmilne'Desktop'AA0081913_NEW.pdf", FileMode.Create)); //Declare location'name of new PDF not containing page breaks.
            document.Open();
            PdfImportedPage page;
            PdfPTable table = new PdfPTable(1);
            table.WidthPercentage = 100;
            for (int i = 1; i <= pages; i++)
            {
                page = writer.GetImportedPage(reader, i);
                table.AddCell(iTextSharp.text.Image.GetInstance(page));
            }
            document.Add(table);
            document.Close(); 
        }
    }
}

结束页大小必须小于14400乘14400。(这是iTextSharp所允许的全部内容)一个普通分辨率的8 1/2 x 11 PDF文件最多可以有18页。

使用iTextSharp C#库。它为您提供了许多操作PDF的选项。我以前在为封闭源代码文档存储库编写导入应用程序时使用过它。它就像一个符咒。唯一的缺点是他们的文档有点参差不齐,因为他们想让你购买他们的书。您可以免费浏览他们的Java API,因为它几乎与C#相同,只需四处玩耍就可以找到C#版本。

iText:http://itextpdf.com/