การทำงานกับวัตถุ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-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
builder->InsertOleObject(u"http://www.aspose.com", u"htmlfile", true, true, nullptr); | |
doc->Save(ArtifactsDir + u"WorkingWithOleObjectsAndActiveX.InsertOleObject.docx"); |
ตั้งชื่อไฟล์และนามสกุลเมื่อใส่วัตถุOLE
OLEแพคเกจเป็นแบบดั้งเดิมและ"ไม่มีเอกสาร"วิธีการจัดเก็บวัตถุที่ฝังตัวถ้าไม่ทราบตัวจัดการOLE.
ต้นWindowsรุ่นเช่นWindows3.1,95,และ 98 มีห่อ.โปรแกรมประยุกต์ที่สามารถใช้ในการฝังชนิดของข้อมูลใดๆลงในเอกสาร ตอนนี้แอปพลิเคชันนี้ถูกยกเว้นจากWindowsแต่Microsoft Wordและแอปพลิเคชันอื่นๆยังคงใช้เพื่อฝังข้อมูลหากตัวจัดการOLEหายไปหรือไม่รู้จัก คลาสOlePackage
อนุญาตให้ผู้ใช้เข้าถึงคุณสมบัติของแพคเกจOLE.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการตั้งค่าชื่อแฟ้มส่วนขยายและชื่อที่แสดงสำหรับแพคเกจOLE:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
ArrayPtr<uint8_t> bs = System::IO::File::ReadAllBytes(MyDir + u"Zip file.zip"); | |
{ | |
SharedPtr<System::IO::Stream> stream = MakeObject<System::IO::MemoryStream>(bs); | |
SharedPtr<Shape> shape = builder->InsertOleObject(stream, u"Package", true, nullptr); | |
SharedPtr<OlePackage> olePackage = shape->get_OleFormat()->get_OlePackage(); | |
olePackage->set_FileName(u"filename.zip"); | |
olePackage->set_DisplayName(u"displayname.zip"); | |
doc->Save(ArtifactsDir + u"WorkingWithOleObjectsAndActiveX.InsertOleObjectWithOlePackage.docx"); | |
} |
เข้าถึงข้อมูลดิบของวัตถุOLE
ผู้ใช้สามารถเข้าถึงOLEข้อมูลวัตถุโดยใช้คุณสมบัติต่างๆและวิธีการของOleFormat
คลาส มูลดิบของวัตถุOLE
หรือพาธและชื่อของไฟล์ต้นฉบับสำหรับออบเจกต์OLEที่เชื่อมโยง.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการรับOLEวัตถุข้อมูลดิบโดยใช้วิธีการGetRawData:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto oleShape = System::DynamicCast<Shape>(doc->GetChild(NodeType::Shape, 0, true)); | |
ArrayPtr<uint8_t> oleRawData = oleShape->get_OleFormat()->GetRawData(); |
แทรกวัตถุโอเลเป็นไอคอน
วัตถุOLEยังสามารถแทรกลงในเอกสารเป็นรูปภาพ.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกOLEวัตถุเป็นไอคอน เพื่อจุดประสงค์นี้DocumentBuilderชั้นแสดงวิธีการInsertOleObjectAsIcon:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
builder->InsertOleObjectAsIcon(MyDir + u"Presentation.pptx", false, ImagesDir + u"Logo icon.ico", u"My embedded file"); | |
doc->Save(ArtifactsDir + u"WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIcon.docx"); |
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกวัตถุที่ฝังตัวOLEเป็นไอคอนจากสตรีมลงในเอกสาร:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
{ | |
auto stream = MakeObject<System::IO::MemoryStream>(System::IO::File::ReadAllBytes(MyDir + u"Presentation.pptx")); | |
builder->InsertOleObjectAsIcon(stream, u"Package", ImagesDir + u"Logo icon.ico", u"My embedded file"); | |
} | |
doc->Save(ArtifactsDir + u"WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIconUsingStream.docx"); |
แทรกวิดีโอออนไลน์
วิดีโอออนไลน์สามารถแทรกลงในเอกสารคำจากแท็บ*“Insert” > “Online Video”* คุณสามารถแทรกวิดีโอออนไลน์ลงในเอกสารที่ตำแหน่งปัจจุบันโดยการเรียกวิธีการInsertOnlineVideo.
DocumentBuilderชั้นแนะนำสี่เกินพิกัดของวิธีนี้. คนแรกทำงานร่วมกับรีซอร์สวิดีโอยอดนิยมมากที่สุดและใช้URL
ของวิดีโอเป็นพารามิเตอร์ ตัวอย่างเช่นโอเวอร์โหลดครั้งแรกที่สนับสนุนการแทรกง่ายของวิดีโอออนไลน์จาก YouTube และ วีมิโอ รือไม่.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกวิดีโอออนไลน์จากVimeoลงในเอกสาร:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
builder->InsertOnlineVideo(u"https://youtu.be/t_1LYZ102RA", 360, 270); | |
// We can watch the video from Microsoft Word by clicking on the shape. | |
doc->Save(ArtifactsDir + u"DocumentBuilder.InsertVideoWithUrl.docx"); |
โอเวอร์โหลดที่สองทำงานร่วมกับทรัพยากรวิดีโออื่นๆทั้งหมดและใช้รหัสที่ฝังHTMLเป็นพารามิเต รหัสHTMLสำหรับการฝังวิดีโออาจแตกต่างกันไปขึ้นอยู่กับผู้ให้บริการดังนั้นโปรดติดต่อผู้ให้บริการที่เกี่ยวข้องเพื่อขอรายละเอียด.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการแทรกวิดีโอออนไลน์ลงในเอกสารโดยใช้รหัสHTMLดังกล่าว:
//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(); | |
auto builder = MakeObject<DocumentBuilder>(doc); | |
String videoUrl = u"https://vimeo.com/52477838"; | |
String videoEmbedCode = String(u"<iframe src=\"https://player.vimeo.com/video/52477838\" width=\"640\" height=\"360\" frameborder=\"0\" ") + | |
u"title=\"Aspose\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"; | |
ArrayPtr<uint8_t> thumbnailImageBytes = System::IO::File::ReadAllBytes(ImageDir + u"Logo.jpg"); | |
{ | |
auto stream = MakeObject<System::IO::MemoryStream>(thumbnailImageBytes); | |
{ | |
SharedPtr<System::Drawing::Image> image = System::Drawing::Image::FromStream(stream); | |
// Below are two ways of creating a shape with a custom thumbnail, which links to an online video | |
// that will play when we click on the shape in Microsoft Word. | |
// 1 - Insert an inline shape at the builder's node insertion cursor: | |
builder->InsertOnlineVideo(videoUrl, videoEmbedCode, thumbnailImageBytes, image->get_Width(), image->get_Height()); | |
} | |
} | |
doc->Save(ArtifactsDir + u"DocumentBuilder.InsertOnlineVideoCustomThumbnail.docx"); |