Manipulate Page Properties
Get PDF Page Properties from an Existing PDF File
PdfPageEditor allows you work with individual pages of the PDF file. It helps you get the individual page’s properties like different page box sizes, page rotation, page zoom etc. In order to get those properties, you need to create PdfPageEditor object and bind input PDF file using BindPdf method. After that, you can use different methods to get the page properties like GetPageRotation, GetPages, GetPageBoxSize etc.
The following code snippet shows you how to get PDF page properties from existing PDF file.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetPdfPageProperties()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Open the document
using (var pageEditor = new Aspose.Pdf.Facades.PdfPageEditor())
{
// Bind the PDF file
pageEditor.BindPdf(dataDir + "input.pdf");
// Get page properties and print them to the console
Console.WriteLine($"Page 1 Rotation: {pageEditor.GetPageRotation(1)}");
Console.WriteLine($"Total Pages: {pageEditor.GetPages()}");
Console.WriteLine($"Trim Box Size of Page 1: {pageEditor.GetPageBoxSize(1, "trim")}");
Console.WriteLine($"Art Box Size of Page 1: {pageEditor.GetPageBoxSize(1, "art")}");
Console.WriteLine($"Bleed Box Size of Page 1: {pageEditor.GetPageBoxSize(1, "bleed")}");
Console.WriteLine($"Crop Box Size of Page 1: {pageEditor.GetPageBoxSize(1, "crop")}");
Console.WriteLine($"Media Box Size of Page 1: {pageEditor.GetPageBoxSize(1, "media")}");
}
}
Set PDF Page Properties in an Existing PDF File
In order to set page properties like page rotation, zoom or origin point you need to use PdfPageEditor class. This class provides different methods and properties to set these page properties. First of all, you need to create an object of PdfPageEditor class and bind input PDF file using BindPdf method. After that, you can use these methods and properties to set the page properties. Finally, save the updated PDF file using Save method.
The following code snippet shows you how to set PDF page properties in an existing PDF file.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetPdfPageProperties()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Open the document
using (var pageEditor = new Aspose.Pdf.Facades.PdfPageEditor())
{
pageEditor.BindPdf(dataDir + "input.pdf");
// Set page properties
// Move origin from (0,0)
pageEditor.MovePosition(100, 100);
// Set page rotations
var pageRotations = new System.Collections.Hashtable
{
{ 1, 90 },
{ 2, 180 },
{ 3, 270 }
};
// Set zoom where 1.0f = 100% zoom
pageEditor.Zoom = 2.0f;
// Save the updated PDF file
pageEditor.Save(dataDir + "SetPageProperties_out.pdf");
}
}
Resize Page Contents of Specific Pages in a PDF file
ResizeContents method of PdfPageEditor class allows you to resize the page contents in a PDF file. ContentsResizeParameters class is used to specify the parameters to be used to resize the page(s) e.g. margins in percentage or units etc. You can resize all the pages or specify an array of pages to be resized using the ResizeContents method.
The following code snippet shows how to resize the contents of some specific pages of PDF file.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ResizePdfPageContents()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Create PdfFileEditor Object
var fileEditor = new Aspose.Pdf.Facades.PdfFileEditor();
// Open PDF Document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Specify Parameters to be used for resizing
var parameters = new Aspose.Pdf.Facades.PdfFileEditor.ContentsResizeParameters(
// Left margin = 10% of page width
PdfFileEditor.ContentsResizeValue.Percents(10),
// New contents width calculated automatically as width - left margin - right margin (100% - 10% - 10% = 80%)
null,
// Right margin is 10% of page
PdfFileEditor.ContentsResizeValue.Percents(10),
// Top margin = 10% of height
PdfFileEditor.ContentsResizeValue.Percents(10),
// New contents height is calculated automatically (similar to width)
null,
// Bottom margin is 10%
PdfFileEditor.ContentsResizeValue.Percents(10)
);
// Resize Page Contents
fileEditor.ResizeContents(document, new[] { 1, 2 }, parameters);
// Save document into a new location
document.Save(dataDir + "ResizePageContents_out.pdf");
}
}