Bu sorunun eski olduğunu biliyorum, ama son zamanlarda bu sorunu yaşadım ve sonunda bunu yapmanın bir yolu vardı.
Bu, gdal
bir PDF sürücüsüne sahip olan Osgeo'ları kullanarak gerçekleştirilebilir . Temel olarak şöyle bir şey yapabilirsiniz:
from osgeo import gdal
#Open your Unreferenced PDF
src = gdal.Open("originalFile.pdf")
Sonra PDF'ye eklemek istediğiniz Projeksiyon Sistemi ve Geotransform'u bir şekilde elde edin veya hesaplayın. Örneğin, bunları bir GeoTiff'ten çıkarabiliriz:
#Open the Tiff to obtain its data from
geoTiff = gdal.Open("someMap.tif")
#Obtain its Projection system and its Geotransform
coords = geoTiff.GetProjection()
gt = geoTiff.GetGeoTransform()
Son olarak, projeksiyonu ve coğrafi dönüşümü PDF'nize ayarlayın ve ardından PDF Sürücüsü ile bir kopya oluşturun:
src.SetProjection(coords)
src.SetGeoTransform(gt)
#Instantiate a PDF driver and save your Referenced copy
pdf_driver = gdal.GetDriverByName("PDF")
dst = pdf_driver.CreateCopy("referencedFile.pdf", src, 1)
Sonuç, sol üst köşesinin gt
Projeksiyon Sistemi kullanılarak bir yere yerleştirilmesi için coğrafi referans verilen bir PDF'dir coords
. Bu, QGis veya ArcGis'te PDF açarak veya gdalinfo
referans verilen PDF'deki komutu kullanarak doğrulanabilir .