Программное обрезание страниц PDF C#

Получение свойств страницы

Каждая страница в PDF-файле имеет ряд свойств, таких как ширина, высота, bleed-, crop- и trimbox. Aspose.PDF позволяет вам получить доступ к этим свойствам.

  • Медиабокс: Медиабокс — это самый большой бокс страницы. Он соответствует размеру страницы (например, A4, A5, US Letter и т. д.), выбранному при печати документа в PostScript или PDF. Другими словами, медиабокс определяет физический размер носителя, на котором отображается или печатается PDF-документ.
  • Бокс обрезки: Если документ имеет обрезку, PDF также будет иметь бокс обрезки. Обрезка — это количество цвета (или графики), которое выходит за край страницы. Он используется для того, чтобы гарантировать, что при печати документа и его обрезке до размера (“обрезке”) чернила будут доходить до самого края страницы. Даже если страница неправильно обрезана - слегка срезана от меток обрезки - на странице не появится белых краев.
  • Бокс обрезки: Бокс обрезки указывает окончательный размер документа после печати и обрезки.
  • Арт-бокс: Арт-бокс — это бокс, нарисованный вокруг фактического содержимого страниц в ваших документах. Этот бокс страницы используется при импорте PDF-документов в другие приложения.
  • Бокс обрезки: Бокс обрезки — это “размер страницы”, при котором ваш PDF-документ отображается в Adobe Acrobat. В обычном режиме в Adobe Acrobat отображается только содержимое бокса обрезки. Для подробных описаний этих свойств прочитайте спецификацию Adobe.Pdf, особенно 10.10.1 Границы страниц.
  • Page.Rect: пересечение (обычно видимый прямоугольник) MediaBox и DropBox. На рисунке ниже иллюстрируются эти свойства. Для получения дополнительной информации, пожалуйста, посетите эту страницу.

Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.

Фрагмент ниже показывает, как обрезать страницу:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CropPage()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Pages();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "CropPageInput.pdf"))
    {
        Console.WriteLine(document.Pages[1].CropBox);
        Console.WriteLine(document.Pages[1].TrimBox);
        Console.WriteLine(document.Pages[1].ArtBox);
        Console.WriteLine(document.Pages[1].BleedBox);
        Console.WriteLine(document.Pages[1].MediaBox);
        // Create new Box rectangle
        var newBox = new Rectangle(200, 220, 2170, 1520);
        document.Pages[1].CropBox = newBox;
        document.Pages[1].TrimBox = newBox;
        document.Pages[1].ArtBox = newBox;
        document.Pages[1].BleedBox = newBox;
        // Save PDF document
        document.Save(dataDir + "CropPage_out.pdf");  
    }
}

В этом примере мы использовали образец файла здесь. Изначально наша страница выглядит, как показано на Рисунке 1.

После изменения страница будет выглядеть как на Рисунке 2.

Обрезка белых пространств вокруг страницы

Например, вы можете обрезать белые пространства вокруг страницы, используя любую графическую библиотеку, которая может загружать битмапы: