العمل مع كائنات OLE والفيديو عبر الإنترنت

OLE (ربط الكائنات وتضمينها) هي تقنية يمكن للمستخدمين من خلالها العمل مع المستندات التي تحتوي على “كائنات” تم إنشاؤها أو تحريرها بواسطة تطبيقات الطرف الثالث. أي أن OLE يسمح لتطبيق تحرير بتصدير هذه “الكائنات” إلى تطبيق تحرير آخر ثم استيرادها بمحتوى إضافي.

في هذه المقالة، سنتحدث عن إدراج كائن OLE وتعيين خصائصه، بالإضافة إلى إدراج مقطع فيديو عبر الإنترنت في مستند.

إدراج كائن OLE

إذا كنت تريد كائن OLE، فاتصل بالطريقة InsertOleObject وقم بتمرير ProgId إليه بشكل صريح مع المعلمات الأخرى.

يوضح مثال التعليمات البرمجية التالي كيفية إدراج كائن OLE في مستند:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertOleObject("http://www.aspose.com", "htmlfile", true, true, null);
dataDir = dataDir + "DocumentBuilderInsertOleObject_out.doc";
doc.Save(dataDir);

قم بتعيين اسم الملف وامتداده عند إدراج كائن OLE

تعد حزمة OLE طريقة قديمة و"غير موثقة" لتخزين الكائنات المضمنة إذا كان معالج OLE غير معروف.

كانت إصدارات Windows المبكرة مثل Windows 3.1 و95 و98 تحتوي على تطبيق Packager.exe يمكن استخدامه لتضمين أي نوع من البيانات في المستند. تم الآن استبعاد هذا التطبيق من Windows، لكن Microsoft Word والتطبيقات الأخرى لا تزال تستخدمه لتضمين البيانات إذا كان معالج OLE مفقودًا أو غير معروف. تسمح فئة OlePackage للمستخدمين بالوصول إلى خصائص حزمة OLE.

يوضح مثال التعليمات البرمجية التالي كيفية تعيين اسم الملف والملحق واسم العرض لحزمة OLE:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
byte[] bs = File.ReadAllBytes(dataDir + @"input.zip");
using (Stream stream = new MemoryStream(bs))
{
Shape shape = builder.InsertOleObject(stream, "Package", true, null);
OlePackage olePackage = shape.OleFormat.OlePackage;
olePackage.FileName = "filename.zip";
olePackage.DisplayName = "displayname.zip";
dataDir = dataDir + "DocumentBuilderInsertOleObjectOlePackage_out.doc";
doc.Save(dataDir);
}

الحصول على الوصول إلى البيانات الأولية لكائن OLE

يمكن للمستخدمين الوصول إلى بيانات كائن OLE باستخدام خصائص وأساليب متنوعة لفئة OleFormat. على سبيل المثال، من الممكن الحصول على البيانات الأولية لكائن OLE أو مسار واسم الملف المصدر لكائن OLE المرتبط.

يوضح مثال التعليمات البرمجية التالي كيفية الحصول على البيانات الأولية لكائن OLE باستخدام طريقة GetRawData:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Load document with OLE object.
Document doc = new Document(dataDir + "DocumentBuilderInsertTextInputFormField_out.doc");
Shape oleShape = (Shape)doc.GetChild(NodeType.Shape, 0, true);
byte[] oleRawData = oleShape.OleFormat.GetRawData();

قم بإدراج كائن OLE كرمز

يمكن أيضًا إدراج كائنات OLE في المستندات كصور.

يوضح مثال التعليمات البرمجية التالي كيفية إدراج كائن OLE كرمز. لهذا الغرض، تعرض فئة DocumentBuilder طريقة InsertOleObjectAsIcon:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertOleObjectAsIcon(dataDir + "embedded.xlsx", false, dataDir + "icon.ico", "My embedded file");
doc.Save(dataDir + "EmbeddeWithIcon_out.docx");
Console.WriteLine("The document has been saved with OLE Object as an Icon.");

يوضح مثال التعليمات البرمجية التالي كيفية إدراج كائن OLE مضمن كرمز من دفق في المستند:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertOleObjectAsIcon(dataDir + "embedded.xlsx", false, dataDir + "icon.ico", "My embedded file");
using (MemoryStream stream = new MemoryStream(File.ReadAllBytes(dataDir + "embedded.xlsx")))
builder.InsertOleObjectAsIcon(stream, "Package", dataDir + "icon.ico", "My embedded file");
doc.Save(dataDir + "EmbeddeWithIconUsingStream_out.docx");
Console.WriteLine("The document has been saved with OLE Object as an Icon.");

إدراج فيديو عبر الإنترنت

يمكن إدراج الفيديو عبر الإنترنت في مستند Word من علامة التبويب “إدراج” > “فيديو عبر الإنترنت”. يمكنك إدراج مقطع فيديو عبر الإنترنت في مستند في الموقع الحالي عن طريق استدعاء طريقة InsertOnlineVideo.

تقدم فئة DocumentBuilder أربعة حمولات زائدة لهذه الطريقة. يعمل الأول مع موارد الفيديو الأكثر شيوعًا ويأخذ URL للفيديو كمعلمة. على سبيل المثال، يدعم التحميل الزائد الأول الإدراج البسيط لمقاطع الفيديو عبر الإنترنت من موارد موقع YouTube وفيميو.

يوضح مثال التعليمات البرمجية التالي كيفية إدراج مقطع فيديو عبر الإنترنت من Vimeo في مستند:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
//The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithOnlineVideo();
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Pass direct url from youtu.be.
string url = "https://youtu.be/t_1LYZ102RA";
double width = 360;
double height = 270;
Shape shape = builder.InsertOnlineVideo(url, width, height);
dataDir = dataDir + "Insert.OnlineVideo_out_.docx";
doc.Save(dataDir);

يعمل التحميل الزائد الثاني مع جميع موارد الفيديو الأخرى ويأخذ كود HTML المضمن كمعلمة. قد يختلف رمز HTML الخاص بتضمين مقطع فيديو وفقًا للموفر، لذا اتصل بالمزود المعني للحصول على التفاصيل.

يوضح مثال التعليمات البرمجية التالي كيفية إدراج مقطع فيديو عبر الإنترنت في مستند باستخدام تعليمات HTML البرمجية هذه:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
//The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithOnlineVideo();
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Shape width/height.
double width = 360;
double height = 270;
// Poster frame image.
byte[] imageBytes = File.ReadAllBytes("TestImage.jpg");
// Visible url
string vimeoVideoUrl = @"https://vimeo.com/52477838";
// Embed Html code.
string vimeoEmbedCode = "";
builder.InsertOnlineVideo(vimeoVideoUrl, vimeoEmbedCode, imageBytes, width, height);
dataDir = dataDir + "Insert.OnlineVideo_out_.docx";
doc.Save(dataDir);