2013-06-14 5 views
5

का उपयोग कर मैक ओएसएक्स के लिए वर्ड 2011 में यूआरएल से छवि जोड़ना मैं ओएसएक्स पर project in Windows को पोर्ट करने पर काम कर रहा हूं। मैंने ओएसएक्स वर्ड 2011 not allowing you to send POSTs to a server के लिए वीबीए के साथ मुद्दों को दूर किया है और how to return a string result from an external script का पता लगाया है। अब मुझे अपनी वर्ड फ़ाइल में एक यूआरएल से एक छवि डालना है जो मेरी बाहरी लिपि की वापसी का उपयोग कर बनाया गया है। ऐसा लगता है कि एमएस एक "सुरक्षा जोखिम" के रूप में OSX में इस कार्यक्षमता को अक्षम कर दिया तरहवीबीए

Selection.InlineShapes.AddPicture FileName:=File_Name, _ 
    LinkToFile:=False, SaveWithDocument:=True 

कुछ शोध करने के बाद,:

वर्तमान प्रयास इस प्रकार है, और Windows में काम करता है लेकिन OSX में वर्ड दुर्घटनाओं । मुझे अभी भी इसे काम करने की जरूरत है। क्या कोई व्यक्ति इस काम को करने के लिए या वर्कअराउंड को छोड़कर Office 2011 के लिए वीबीए के भीतर किसी तरीके से जानता है? यदि संभव हो तो मैं छवि फ़ाइल को डिस्क पर लिखने से बचने की कोशिश कर रहा हूं।

अद्यतन: मैं कम से वर्ड दस्तावेज़ में वहाँ से किसी URL से छवि फ़ाइल प्राप्त करने के लिए एक अजगर स्क्रिप्ट बनाया है, लेकिन मैं अभी भी VBA में अजगर स्क्रिप्ट से इस छवि को पाने के लिए पता नहीं है, और कर्सर का स्थान। लिपि के महत्वपूर्ण बिट नीचे हैं। छवि को PIL ऑब्जेक्ट के रूप में पढ़ा जाता है और मैं इसे img.show() का उपयोग करके ठीक दिखा सकता हूं, लेकिन मुझे यकीन नहीं है कि यह फ़ाइल प्रकार क्या है या इसे स्वीकार करने के लिए वीबीए कैसे प्राप्त करें।

# Import the required libraries 
from urllib2 import urlopen, URLError 
from cStringIO import StringIO 
from PIL import Image 

# Send request to the server and receive response, with error handling! 
try: 
    # Read the response and print to a file 
    result = StringIO(urlopen(args.webAddr + args.filename).read()) 
    img = Image.open(result) 
    img.show() 

except URLError, e: 
    if hasattr(e, 'reason'): # URL error case 
     # a tuple containing error code and text error message 
     print 'Error: Failed to reach a server.' 
     print 'Reason: ', e.reason 
    elif hasattr(e, 'code'): # HTTP error case 
     # HTTP error code, see section 10 of RFC 2616 for details 
     print 'Error: The server could not fulfill the request.' 
     print 'Error code: ', e.code 

ध्यान दें कि ऊपर में, args.webAddr और args.filenameargparse लाइब्रेरी का उपयोग कर स्क्रिप्ट को पारित कर रहे हैं। यह स्क्रिप्ट काम करता है, और मैं जिस छवि फ़ाइल की अपेक्षा करता हूं उसे दिखाऊंगा। ओएसएक्स के लिए वर्ड 2011 में उस छवि को कैसे प्राप्त करें और इसे कर्सर के नीचे डालने के बारे में कोई विचार?

बहुत बहुत धन्यवाद!

संपादित करें: ने जिथब में माइग्रेट करने के बाद से परियोजना के लिंक को अपडेट किया।

+0

मैक पर हाँ वीबी डरावनी है। मैं खुद कुछ कोड के साथ अटक गया हूँ। उम्मीद है कि आपके पास जो जवाब मिला है, वह आपके लिए काम करता है :) – Kathara

उत्तर

2

पुराना प्रश्न, लेकिन कोई जवाब नहीं, और जब मैं एक http यूआरएल पर हूं तो मैं वही दुर्घटना देखता हूं। मुझे लगता है कि आप निम्नलिखित वर्कअराउंड

Sub insertIncludePictureAndUnlink() 
' Put your URL in here... 
Const theImageURL As String = "" 
Dim f As Word.Field 
Dim r As Word.Range 
Set f = Selection.Fields.Add(Range:=Selection.Range, Type:=wdFieldIncludePicture, Text:=Chr(34) & theImageURL & Chr(34), PreserveFormatting:=False) 
Set r = f.Result 
f.Unlink 
Set f = Nothing 
' should have an inlineshape in r 
Debug.Print r.InlineShapes.Count 
' so now you can do whatever you need, e.g.... 
r.Copy 
Set r = Nothing 
End Sub 
+0

मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन अगर आपने अंततः मेरे लिए मेरी समस्या हल कर दी है तो मैं आपके द्वारा दिए गए हर उत्तर को ऊपर उठाऊंगा! सिवाय इसके कि मुझे लगता है कि वे बम विस्फोट को फ़िल्टर करते हैं, इसलिए वास्तव में नहीं, लेकिन मैं चाहूंगा। – Engineero

+0

यह काम किया! मैं अंततः इस के साथ गड़बड़ करने के लिए चारों ओर मिल गया, और आपके कामकाज ने मेरी समस्या तय की। करने के लिए अभी भी और काम है, लेकिन यह एक बड़ी मदद थी। धन्यवाद! – Engineero

+1

आशा है कि यह अभी भी नए संस्करण में काम करता है! –