* <li>Client Space is the virtual area occupied by PDFViewCtrl on a device,
* originated at its upper-left corner. Note that this space can extend
* beyond the visible region. Client Space is in the same scale with the
* dimensions of android.view.View;
* <li>Page Space is defined by a PDF page itself, originated at the
* lower-left corner. Unlike Client Space, it is independent of how the page
* is viewed; Namely, it does't change with the zoom factor, the scroll
* position, and etc.
* <li>(PDF) Canvas Space is defined as the smallest axis-aligned rectangle
* surrounding all the pages in continuous page presentation mode, or the
* current page(s) in non-continuous page presentation mode. For example,
* PAGE_PRESENTATION_FACING_CONT will make a wider but shorter Canvas Space
* than what PAGE_PRESENTATION_SINGLE_CONT will do. Note that PDF Canvas
* Space is in the same scale of Page Space and also independent of zoom
* factor, scroll position, etc. For simplicity, PDF Canvas Space is
* referenced to as Canvas Space.
* <li>Zoomed PDF Canvas Space is similar to PDF Canvas space, but after it
* is scaled by the current zoom factor, and page gaps are added between
* pages.
* <li>View Canvas Space is the virtual region occupied by the its
* android.graphics.Canvas object, the one passed in through the
* onDraw(Canvas c) method. Note that View Canvas Space is in general
* different from Canvas Space. For example, when PDFViewCtrl is zoomed out
* so that all the pages are visible, View Canvas Space will be
* larger than Canvas Space.
* </ul>
* </p>
*
* <p>
* For example, if you want to know the coordinates of the upper-left corner
* of the Canvas Space in the client space, you can simply use
* convCanvasPtToClientPt(0,0). If you want to calculate the coordinates of
* the lower-left corner of page 1 in the client space, you can use
* convPagePtToClientPt(0, 0, 1). Or if you just want to know the
* coordinates of the upper left corner of the Client Space in View
* Canvas Space, it is simply (getScrollX(), getScrollY()).
* </p>
You are right by using the page coordinates as the "absolute" position. The following is the sample code for the server side:
Note that the above code only shows how to synchronize the scroll positions, but not the zoom factor. If you want to do that, you should do that before synchronizing the scroll positions. Since the two devices have different screen size, the zoom factors on two devices should be synchronized in a relative sense.
After this is done, you can apply the above code to adjust the scroll positions.