পাইথন ব্যবহার করে পৃষ্ঠা আকারের পরিবর্তনের আনুপাতিকভাবে স্কেল মানচিত্রের উপাদানগুলি অক্ষম করতে?


11

আমি আরসিপি এবং আরকজিআইএস 10.0 ব্যবহার করে বিভিন্ন অফিসে এমএক্সডিগুলিতে উত্সগুলি পরিবর্তন করছি। যেমনটি পর্যবেক্ষণ করা হয়েছে , নির্দেশ mxd.save () প্রেরণ করা হলে প্রিন্টার সেটিংস ডিফল্ট প্রিন্টারে ফিরে আসে।

"প্রিন্টার কাগজ সেটিংস ব্যবহার করুন" নির্বাচন করা অবস্থায় "প্রিন্টারের কাগজ সেটিংস ব্যবহার করুন" নির্বাচন করা হলে মুদ্রক বিকল্পটি "পৃষ্ঠার আকারের পরিবর্তনের সাথে আনুপাতিকভাবে মানচিত্রের উপাদানগুলি স্কেল করুন" প্রিন্ট বিকল্পটি যদি টিক চিহ্ন দেওয়া হয় তবে এটি মুখ্য হয়ে ওঠে ter নীচের স্ক্রিনশটটি আমার নিকৃষ্টতম পরিস্থিতি, সবচেয়ে ভাল কেসটি উভয় টিক-বাক্সকেই চেক করা হবে।

এখানে চিত্র বর্ণনা লিখুন

  • আমি এই বিকল্পের মানটি পরীক্ষা করতে কমপিটিস ব্যবহার করতে চাই এবং এমএক্সডি সংরক্ষণের আগে এটি ফ্যালস (অনিঙ্ক্টড) এ সেট করতে চাই - ধারণাটি হ'ল এটি একটি বিদ্যমান আরকপাই স্ক্রিপ্ট থেকে একটি ফাংশন হিসাবে কল করা উচিত। (প্রাথমিক লক্ষ্য)

  • মুদ্রণ সেটিংস আরও সুরক্ষিত করতে, আমি আদর্শভাবে "টেক্সট করা থাকলে" প্রিন্টার সেটিংস ব্যবহার করুন "বাক্সটি আনটিক করতে চাই। (গৌণ লক্ষ্য)

কেউ সাহায্য করতে পারেন?

উত্তর:


13

আমি ধরে নিলাম আপনি নিম্নলিখিত এসই কিউ / এ অনুযায়ী সফলভাবে কমপি টাইপ ইনস্টল করেছেন:

স্নিপেট:

import arcpy
from snippets102 import *
from comtypes.client import GetModule, CreateObject

import comtypes.gen.esriFramework as esriFramework
import comtypes.gen.esriArcMapUI as esriArcMapUI
import comtypes.gen.esriCarto as esriCarto

pMapDoc = CreateObject(esriCarto.MapDocument, interface=esriCarto.IMapDocument)
path = r'D:\my.mxd'
pMapDoc.Open(path)
pageLayoutActiveView = CType(pMapDoc.PageLayout,esriCarto.IActiveView)


p = pMapDoc.PageLayout.Page

#unchecking "Scale map elements proportionally to changes in page size"
p.StretchGraphicsWithPage = False

#setting the size manually suppresses the default behaviour of "Use Printer Paper Settings"
(width,height)=p.QuerySize()
p.Units=1 #1 is for Inches
p.PutCustomSize(width,height) #sizez of a4

pMapDoc.Save()

একটি সক্রিয় আরক্যাম্যাপ সেশনে একটি খোলা এমএক্সডি এর বৈশিষ্ট্য আপডেট করতে এই কোডটি কাস্টমাইজ করা যায়।


ধন্যবাদ ফরিদ! এটা সত্যিই খুব প্রতিশ্রুতিবদ্ধ দেখাচ্ছে! আমি অফিস থেকে দূরে আছি, এবং শুক্রবার বিকেলে আপনার কোড পরীক্ষা করতে সক্ষম হব - আমি অবশ্যই আপনাকে পোস্ট করব। আমার আবার ধন্যবাদ !!
Hèl

শুধু নিশ্চিত করতে, এটি দুর্দান্ত কাজ করে! আপনি কি জানেন যে এটি বর্তমান পৃষ্ঠার আকারটি পড়া সম্ভব কিনা? এটি পড়ার কথা চিন্তা করে এরপরে এটি p.PutCustomSize () হিসাবে প্রয়োগ করুন, তাই আমি প্রতিটি এমএক্সডি-এর জন্য মূল পৃষ্ঠার আকার রাখি।
হ্যালেন

1
অবশ্যই, কেবল (width,height)=p.QuerySize()কোডে যুক্ত করুন এবং p.PutCustomSize(width,height)সেই অনুযায়ী পরিবর্তন করুন । আপডেট কোড স্নিপেট দেখুন!
ফরিদ চেরাগি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.