裁剪一英寸的PDF文件

问题描述 投票:1回答:1

我需要将单页PDF的大小从8X11英寸调整为8X9英寸(或任何大小),而根本不调整内容的大小。

如何在C#中执行此操作?

谢谢

c# pdf crop
1个回答
1
投票

这应该可以使用任何体面的通用PDF库。

例如,使用iText 7从右侧裁剪1英寸:

using (PdfReader reader = new PdfReader(SOURCE_PDF))
using (PdfWriter writer = new PdfWriter(TARGET_PDF))
using (PdfDocument document = new PdfDocument(reader, writer))
{
    for (int i = 1; i <= document.GetNumberOfPages(); i++)
    {
        PdfPage page = document.GetPage(i);
        Rectangle cropBox = page.GetCropBox();
        cropBox.SetWidth(cropBox.GetWidth() - 72);
        page.SetCropBox(cropBox);
    }
}

如果您在评论中提到,您实际上想将PDF的右侧部分切成宽度为88mm的PDF,并保持相同的高度,替换

        cropBox.SetWidth(cropBox.GetWidth() - 72);

作者

        cropBox.SetWidth(88f * 72f / 25.4f);

裁剪框的尺寸以默认用户空间单位给出,该单位又默认为1⁄72英寸。因此,要设置以毫米为单位的尺寸,必须先将该数字乘以(72 / 25.4)。


两句话:

  • 实际上,默认用户空间单元可能会有所不同,如果设置了页面的[[UserUnit属性,其指定为

    正数,应为默认用户空间单位的大小,为1⁄72英寸的倍数。支持值的范围应取决于实现。

    默认值:1.0(用户空间单位为1⁄72英寸)。

    (ISO 32000-1,表30-页面对象中的条目)

    尽管很少使用此属性,特别是因为“支持的值的范围应取决于实现”位,因此在上面我忽略了它。
  • 如果您不想

    crop而是要enlarge页面区域,则可能不仅需要扩大CropBox,还需要扩大MediaBox] >。

    裁剪,出血,修剪和美术包装盒通常不应超出介质包装盒的边界。如果这样做,它们将有效地减少到与介质盒的交点。

    ((ISO 32000-1,第14.11.2.1节,页面边界/常规)PdfPage具有类似的方法GetMediaBoxSetMediaBox,可用于放大

    MediaBox

© www.soinside.com 2019 - 2024. All rights reserved.