Back to Blog

    Developer Blog

    How to render only part of a PDF page?

    Foxit PDF SDK 5.3

    To render only part of a PDF page, the key point is to ensure that the rendering page size is larger than the device’s display area. Contents that are not on the display area will not be rendered.

    Foxit PDF SDK provides the interface FSPDF_Page_GetMatrix to get page’s transformation matrix
    which can be used for rendering page to device’s context. Users can call
    FSPDF_RenderContext_SetMatrix to set the matrix to a given rendering context.

    Assuming that you have downloaded the trial package of Foxit PDF SDK, we can use the simple
    samples as an example. To render only top-left 1/4 part of a PDF page, you can do as follows:

    • Go to “samples\simple_sample\comm_src\fgsdk_common.cpp” and locate the call of
      FSPDF_Page_GetMatrix;
    • Change the parameters of this interface to
      FSPDF_Page_GetMatrix (page, 0, 0, (FS_INT32) width*2, (FS_INT32) height*2, 0, &mt)”;
    • Build and run demo “pdf2img”.

    Then check the generated files under “samples\simple_sample\output_files\pdf2img”, you
    will find that only top-left 1/4 part of the PDF page has been rendered.

    Following is the diagrams to further explain the processes above. Only the orange area in PDF page
    will be rendered to device as shown in Figure 1(a). Figure 1(b) shows the display area in device
    which has the same size with the page. Figure 2 shows that only the orange area has been rendered
    in device by quadrupling the rendering page size.

    FoxitPDFSDK DeveloperGuide Page173 Image1

     

    FoxitPDFSDK DeveloperGuide Page173 Image2

    Note:
    FSPDF_Page_GetMatrix (FSCRT_PAGE page, FS_INT32 x, FS_INT32 y, FS_INT32 width, FS_INT32
    height, FS_INT32 rotation, FSCRT_MATRIX *matrix)

    Parameters x and y specify the location of the top-left point of a PDF page in device coordinate. For
    example, setting (x, y) to (0, 0) means that the top-left point of the page just matches the origin in
    device coordinate system; setting (x, y) to (-200, -100) means that the top-left point of the page is in
    negative direction of x-axis by 200 and in negative direction of y-axis by 100 points of the origin in
    device coordinate system.

    Parameters width and height specify the rendering page size which may larger or smaller than the
    actual size of a PDF page. For example, setting them to width*2 and height*2 means that the size of
    the rendering page is four times as large as the actual one, but the actual page size has not been
    changed.

    Note: This article refers to a deprecated version of a Foxit Product. If you are still using Foxit PDF SDK 5.3 or older, please refer to your download package documents for Developer Guide and API Reference.

    Get a trial version of the new Foxit PDF SDK and see our latest generation SDK’s brand new features!