如何从 pdf 中删除分页符,因此输出将是单个“页面”PDF?因此,如果一个普通页面是 400x900 并且我有 4 个页面,那么生成的文件将是 1600x900。我以前为 Tif 文件执行此操作(删除多页 tif 中的分页符以制作一长页),但想使用 PDF 执行此操作。我可以转换为 ps,删除任何意味着“分页符”的代码,然后转换回 pdf 吗?
问问题
2903 次
2 回答
4
这可以在 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 x 14400。(这是 iTextSharp 允许的全部)一个 8 1/2 x 11 PDF 的通用分辨率将使最大大约 18 页。
于 2013-09-03T21:45:53.687 回答
1
使用 iTextSharp C# 库。它为您提供了很多操作 PDF 的选项。当我不得不为闭源文档存储库编写导入应用程序时,我曾经使用过它。它就像一个魅力。唯一的缺点是他们的文档有点参差不齐,因为他们希望您购买他们的书。您可以免费浏览他们的 Java API,因为它与 C# 几乎相同,只需使用它即可找到 C# 版本。
iText:http: //itextpdf.com/
于 2013-08-30T16:14:02.133 回答