<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><span class="Apple-style-span" style="font-family: arial, helvetica, clean, sans-serif; border-collapse: collapse; line-height: 15px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Even and GDAL community,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px;
padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Sorry if everyone has already received this message. I was </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">I hope you can enlighten me on the issue of computing neatline values. The solution presented in GDAL (I am using the trunk version download from 11-16-2010) to compute the neatline values is not fully correct (file: pdfdataset.cpp lines 743-749)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width:
initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">specifically:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> double X = poDS->adfGeoTransform[0] + x * poDS->adfGeoTransform[1] +<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial;
"> y * poDS->adfGeoTransform[2];<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> double Y = poDS->adfGeoTransform[3] + x * poDS->adfGeoTransform[4] +<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial;
"> y * poDS->adfGeoTransform[5];</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">but to understand the two lines of code above, you need to understand what was done
before.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">The case where it is correct is when:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right:
0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">1. - PDF is OGC Standard</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> - Neatline values are the corner points of the image.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em;
outline-style: none; outline-width: initial; outline-color: initial; ">The case when GDAL does not compute correct Neatline values is when:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">2. -PDF is OGC Standard</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial;
"> - Neatline values are not the corner points of the image.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Let me elaborate on the case when it does not compute neatline values correctly. An example file is taken from:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial;
outline-color: initial; "><a rel="nofollow" target="_blank" href="http://giigt.tec.army.mil/GeoPDFgallery/AU_NZ_Re-seller/Env_Sample_geo.pdf" style="line-height: 1.2em; text-decoration: underline; color: rgb(0, 51, 153); outline-style: none; outline-width: initial; outline-color: initial; ">http://giigt.tec.army.mil/GeoPDFgallery/AU_NZ_Re-seller/Env_Sample_geo.pdf</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">here is GDAL's output:</div><div style="margin-top: 0px;
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">NOTE: I have modified GDAL code to make default DPI to be 110.<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">C:\apps>gdalinfo.exe c:\Env_Sample_geo.pdf</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial;
outline-color: initial; ">PDF: OGC Encoding Best Practice style detected<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: LGIDict Version : 2.1<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: This is a the largest neatline for now<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[0] = 1.4111110661<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[1] = 0<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[2] = 0<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[3] = 1.4111110661<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[4] =
725048.2016161948<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: CTM[5] = 7671532.018003316<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: Datum = HEN<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PDF: Projection.ProjectionType = TC<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">GDAL: GDALOpen(c:\Env_Sample_geo.pdf, this=026BE308) succeeds as PDF.<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Driver: PDF/Geospatial PDF<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">GDAL: GDALDefaultOverviews::OverviewScan()<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Files:
c:\Env_Sample_geo.pdf<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Size is 1285, 909<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Coordinate System is:<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">PROJCS["UTM Zone 55, Southern Hemisphere",<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> GEOGCS["unknown",<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> DATUM["unknown",<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> SPHEROID["International 1924",6378388,297],<br style="line-height: 1.2em; outline-style:
none; outline-width: initial; outline-color: initial; "> TOWGS84[-333,-222,114,0,0,0,0]],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PRIMEM["Greenwich",0],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> UNIT["degree",0.0174532925199433]],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PROJECTION["Transverse_Mercator"],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PARAMETER["latitude_of_origin",0],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">
PARAMETER["central_meridian",147],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PARAMETER["scale_factor",0.9996],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PARAMETER["false_easting",500000],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> PARAMETER["false_northing",10000000],<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> UNIT["Meter",1]]<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Origin = (725048.201616194800000,7672372.337465400800000)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Pixel Size = (0.923636334174545,-0.923636334174545)<br
style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">GeoTransform =<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> 725048.20161619480, 0.92363633417454549, 0.00000000000000000<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> 7672372.3374654008, -0.0000000000000000, -0.92363633417454549</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Metadata:<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> NEATLINE=POLYGON ((725124.91858881968 7671671.0094531905,725124.91858881968 76<br style="line-height: 1.2em;
outline-style: none; outline-width: initial; outline-color: initial; ">72311.3218032392,726165.27821117197 7672311.3218032392,726165.27821117197 767167<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">1.0094531905,725124.91858881968 7671671.0094531905))<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">OGRCT: Source: +proj=utm +zone=55 +south +ellps=intl +towgs84=-333,-222,114,0,0,<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">0,0 +units=m +no_defs<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">OGRCT: Target: +proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defs<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Corner Coordinates:<br style="line-height: 1.2em; outline-style: none;
outline-width: initial; outline-color: initial; ">Upper Left ( 725048.202, 7672372.337) (149d 9'55.60"E, 21d 2' 7.62"S)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Lower Left ( 725048.202, 7671532.752) (149d 9'55.99"E, 21d 2'34.91"S)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Upper Right ( 726235.074, 7672372.337) (149d10'36.69"E, 21d 2' 7.10"S)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Lower Right ( 726235.074, 7671532.752) (149d10'37.09"E, 21d 2'34.39"S)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Center ( 725641.638, 7671952.545) (149d10'16.34"E, 21d 2'21.00"S)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color:
initial; ">Band 1 Block=1285x1 Type=Byte, ColorInterp=Red<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Band 2 Block=1285x1 Type=Byte, ColorInterp=Green<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Band 3 Block=1285x1 Type=Byte, ColorInterp=Blue<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">GDAL: GDALClose(c:\Env_Sample_geo.pdf, this=026BE308)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">GDAL: GDALDeregister_GTiff() called.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> </div><div style="margin-top: 0px; margin-right:
0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">The Corner points reported should be accurate. I have an unclassified file which the neatline<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">is the height and width of the image, so the corner points are the neatlines. In that case, all<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">points are correct.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">The issues is when you have a defined neatline within the PDF that is
smaller than the image we<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">are looking at (i.e. Neatline != MediaBox)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">FOr this file, the top-left corner of the neatline is very accurate, but the top-right, bottom-right<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">are way off.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "><br style="line-height: 1.2em; outline-style: none;
outline-width: initial; outline-color: initial; ">Can you describe to me how you computed the Neatline values (X,Y). I understand that the CTM is<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">the PDF page coordinate space transformation to projected coordinate system (This file is UTM (Northing/Easting).</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Then you will use that information to compute the Transformation matrix of projection coordinates<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">onto the image space.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px;
padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "><br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Once you have found the GeoTransform you use that information with the NeatLine values registered<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">in the PDF to translate the PDF page coordinate to projected coordinates (this case, Northing/Easting).</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "><br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">The problem I found, is the neatline values are
all not accurate. The values presented do not provided an<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">acceptable bounding region that defines the coordinate space.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Can you please provide input to help me figure out why this is not working accurately? Specifically, it would <br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">be nice if you can explain how, and why, you obtained the computations of the GeoTransform<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">(Look at file pdfdataset.cpp lines 682-689) and Neatline values
(Look at file pdfdataset.cpp lines 712-718)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "><br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">It would be nice if you can take the time to help me resolve this.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "><br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Summary:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right:
0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">1. From above, please explain your logic to compute the neatline, geotransform<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">2. when computing: <br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> double y = poDS->nRasterYSize - poRing->getY(i) * dfPixelPerPt; <br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> Line 713 in pdfdataset.cpp why are you doing that?</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial;
outline-color: initial; "><br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">I have tried to explain in a simple manner. However, I know I did not do the best job because<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">I am still trying to wrap my brain around how transforming from PDF page --> projected coords (UTM)<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">by using the CTM to create the GeoTransform (projected Coords affine transformation) and then use it<br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">to compute the proper UTM coordinate for a given neatline point provided in the PDF.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom:
0px; padding-left: 0px; line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; "> <br style="line-height: 1.2em; outline-style: none; outline-width: initial; outline-color: initial; ">Robert </div></span></td></tr></table><br>