Программное обрезание страниц PDF на C++
Contents
[
Hide
]
Получение Свойств Страницы
Каждая страница в PDF файле имеет ряд свойств, таких как ширина, высота, bleed-, crop- и trimbox. Aspose.PDF позволяет получить доступ к этим свойствам.
- Медиабокс: Медиабокс - это самая большая коробка страницы. Он соответствует размеру страницы (например, A4, A5, US Letter и т.д.), выбранному при печати документа в PostScript или PDF. Иными словами, медиабокс определяет физический размер носителя, на котором отображается или печатается PDF документ.
- Bleed box: Если документ имеет вылет, PDF также будет иметь вылетную коробку. Bleed - это количество цвета (или изображения), которое выходит за пределы края страницы. Оно используется, чтобы гарантировать, что при печати и обрезке документа (“подрезка”) чернила будут доходить до самого края страницы. Даже если страница будет неправильно обрезана - слегка срезана за пределами меток обрезки - на странице не появятся белые края.
- Trim box: Trim box указывает окончательный размер документа после печати и обрезки.
- Art box: Art box - это рамка, нарисованная вокруг фактического содержимого страниц в ваших документах. Эта рамка страницы используется при импорте PDF-документов в другие приложения.
- Crop box: Crop box - это размер “страницы”, при котором ваш PDF-документ отображается в Adobe Acrobat. В обычном режиме отображаются только содержимое crop box в Adobe Acrobat. Для подробных описаний этих свойств читайте Adobe.Pdf спецификацию, особенно раздел 10.10.1 Границы страницы.
- Page.Rect: пересечение (обычно видимый прямоугольник) MediaBox и DropBox. Изображение ниже иллюстрирует эти свойства.
Для получения дополнительной информации, пожалуйста, посетите эту страницу.
Пример ниже показывает, как обрезать страницу:
void CropPagesPDF()
{
String _dataDir("C:\\Samples\\");
String inputFileName("crop_page.pdf");
String outputFileName("crop_page_out.pdf");
// Открыть исходный документ
auto document = MakeObject<Document>(_dataDir + inputFileName);
Console::WriteLine(document->get_Pages()->idx_get(1)->get_CropBox());
Console::WriteLine(document->get_Pages()->idx_get(1)->get_TrimBox());
Console::WriteLine(document->get_Pages()->idx_get(1)->get_ArtBox());
Console::WriteLine(document->get_Pages()->idx_get(1)->get_BleedBox());
Console::WriteLine(document->get_Pages()->idx_get(1)->get_MediaBox());
// Создать новый прямоугольник Box
auto newBox = MakeObject<Rectangle>(200, 220, 2170, 1520);
document->get_Pages()->idx_get(1)->set_CropBox(newBox);
document->get_Pages()->idx_get(1)->set_TrimBox(newBox);
document->get_Pages()->idx_get(1)->set_ArtBox (newBox);
document->get_Pages()->idx_get(1)->set_BleedBox (newBox);
// Сохранить обновленный документ
document->Save(_dataDir + outputFileName);
}
In this example we used a sample file here. Initially our page looks like shown on the Figure 1.
После изменения страница будет выглядеть как на Рисунке 2.