[gdal-dev] geospatialPDF DPI and EXTRA_IMAGES
Even Rouault
even.rouault at spatialys.com
Wed May 25 08:12:51 PDT 2016
Le mercredi 25 mai 2016 16:46:10, Luca Delucchi a écrit :
> On 19 May 2015 at 10:37, Even Rouault <even.rouault at spatialys.com> wrote:
> > Luca,
>
> Hi Even,
>
> > According to the doc, "x and y are in user units from the lower left
> > corner of the page"
>
> I have other two questions:
> - is it possible to calculate the maximum x and y in user units? I
> tried using the difference between maximum x and y coordinates but
> this doesn't work...
> - what are the DPI useful for? We tried to change the value but we
> cannot see big changes, sometimes the DPI changed the extend of the
> resulting PDF
The following extract from the driver should hopefully answer your questions :
double dfUserUnit = dfDPI * USER_UNIT_IN_INCH;
double dfWidthInUserUnit = nWidth / dfUserUnit + sMargins.nLeft + sMargins.nRight;
double dfHeightInUserUnit = nHeight / dfUserUnit + sMargins.nBottom + sMargins.nTop;
--> nWidth and nHeight are the dimensions of the source raster in pixel.
if( dfWidthInUserUnit > MAXIMUM_SIZE_IN_UNITS ||
dfHeightInUserUnit > MAXIMUM_SIZE_IN_UNITS )
{
if( pszDPI == NULL )
{
if( sMargins.nLeft + sMargins.nRight >= MAXIMUM_SIZE_IN_UNITS ||
sMargins.nBottom + sMargins.nTop >= MAXIMUM_SIZE_IN_UNITS )
{
CPLError(CE_Warning, CPLE_AppDefined,
"Margins too big compared to maximum page dimension (%d) "
"in user units allowed by Acrobat",
MAXIMUM_SIZE_IN_UNITS);
}
else
{
if( dfWidthInUserUnit >= dfHeightInUserUnit )
{
dfDPI = (int)(0.5 + (double)nWidth / (MAXIMUM_SIZE_IN_UNITS -
(sMargins.nLeft + sMargins.nRight)) / USER_UNIT_IN_INCH);
}
else
{
dfDPI = (int)(0.5 + (double)nHeight / (MAXIMUM_SIZE_IN_UNITS -
(sMargins.nBottom + sMargins.nTop)) / USER_UNIT_IN_INCH);
}
CPLDebug("PDF", "Adjusting DPI to %d so that page dimension in "
"user units remain in what is accepted by Acrobat", (int)dfDPI);
}
}
else
{
CPLError(CE_Warning, CPLE_AppDefined,
"The page dimension in user units is %d x %d whereas the "
"maximum allowed by Acrobat is %d x %d",
(int)(dfWidthInUserUnit + 0.5),
(int)(dfHeightInUserUnit + 0.5),
MAXIMUM_SIZE_IN_UNITS, MAXIMUM_SIZE_IN_UNITS);
}
}
>
> > Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list