আমি জানি এই প্রশ্নটি পুরানো, তবে সম্প্রতি আমি এই সমস্যাটি নিয়েছিলাম এবং অবশেষে এটি করার একটি উপায় নিয়ে বেরিয়ে এসেছি।
এটি অস্জিও ব্যবহার করে সম্পন্ন করা যায় gdal, যা পিডিএফ ড্রাইভার অন্তর্ভুক্ত রয়েছে। মূলত আপনি এর মতো কিছু করতে পারেন:
from osgeo import gdal
#Open your Unreferenced PDF
src = gdal.Open("originalFile.pdf")
তারপরে আপনি কোনওভাবে পছন্দসই প্রজেকশন সিস্টেম এবং জিওটান্সফর্মটি পিডিএফে যুক্ত করতে চান তা অর্জন বা গণনা করুন। উদাহরণস্বরূপ, আমরা জিওটিফ থেকে এটিগুলি বের করে আনতে পারি:
#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()
অবশেষে, আপনার পিডিএফটিতে প্রক্ষেপণ এবং জিওটান্সফর্ম সেট করুন এবং তারপরে পিডিএফ ড্রাইভারের সাথে একটি অনুলিপি তৈরি করুন:
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)
ফলাফলটি এমন একটি পিডিএফ যা gtপ্রজেকশন সিস্টেমটি ব্যবহার করে তার উপরের-বাম কোণে অবস্থানের জন্য জিওরফারেন্স করা হয় coords। এটি QGis বা আরকগিসের পিডিএফ খোলার মাধ্যমে বা gdalinfoআপনার রেফারেন্সযুক্ত পিডিএফ- র কমান্ডটি ব্যবহার করে যাচাই করা যেতে পারে ।