Работа с Оле обекти
OLE означава “Object Linking and Embedding.” Това е технологията, чрез която потребителите могат да работят с документи, съдържащи “обекти,” създадени или редактирани от приложения на трети страни. Това означава, OLE позволява на заявление за износ на тези “обекти” към друго приложение за редактиране и след това ги внася обратно с допълнително съдържание.
В тази статия ще говорим за въвеждане на обект OLE и поставяне на неговите свойства в документ.
Вмъкване на обект
Ако искате OLE обект, обадете се InsertOleObject • ProgId изрично с други параметри.
Следният пример за код показва как да вмъкнете OLE Обект в документ:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertOleObject("http://www.aspose.com", "htmlfile", true, true, null); | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObject.docx"); |
Задаване на име на файл и разширение при вмъкване на обект OLE
Пакетът OLE е наследство и “недокументиран” начин за съхранение на вградени обекти, ако не е известен.
Рано Windows версии като Windows 3.1, 95 и 98 са имали конвейер. 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-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
byte[] bs = FileUtils.readFileToByteArray(new File(getMyDir() + "Zip file.zip")); | |
try (ByteArrayInputStream stream = new ByteArrayInputStream(bs)) | |
{ | |
Shape shape = builder.insertOleObject(stream, "Package", true, null); | |
OlePackage olePackage = shape.getOleFormat().getOlePackage(); | |
olePackage.setFileName("filename.zip"); | |
olePackage.setDisplayName("displayname.zip"); | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectWithOlePackage.docx"); | |
} |
Get Access to OLE Object Raw Data
Потребителите могат да получат достъп до данните от обекта на OLE чрез различни свойства и методи на OleFormat
Клас. Например, възможно е да се получи OLE
обект сурови данни или пътя и името на изходния файл за свързания обект OLE.
Следният пример с код показва как да получите OLE Обект на необработени данни, използвайки GetRawData метод:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Shape oleShape = (Shape) doc.getChild(NodeType.SHAPE, 0, true); | |
byte[] oleRawData = oleShape.getOleFormat().getRawData(); |
Вмъкване на OLE Обект като икона
Обектите OLE могат да бъдат включени и в документи като изображения.
Следният пример за код показва как да вмъкнете OLE Object като икона. За тази цел, DocumentBuilder класа показва InsertOleObjectAsIcon метод.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertOleObjectAsIcon(getMyDir() + "Presentation.pptx", false, getImagesDir() + "Logo icon.ico", | |
"My embedded file"); | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIcon.docx"); |
Следният пример за код показва как да се въведе вграден обект OLE като икона от поток в документа:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
try(ByteArrayInputStream stream = new ByteArrayInputStream(FileUtils.readFileToByteArray(new File(getMyDir() + "Presentation.pptx")))) | |
{ | |
builder.insertOleObjectAsIcon(stream, "Package", getImagesDir() + "Logo icon.ico", "My embedded file"); | |
} | |
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIconUsingStream.docx"); |
Вмъкване на онлайн видео
Онлайн видеото може да бъде вмъкнато в Word документ от “Insert” > “Online Video” tab. Можете да въведете онлайн видео в документ на текущото място, като се обадите на InsertOnlineVideo метод:
На DocumentBuilder Класът въвежда четири претоварване на този метод. Първият работи с най-популярните видео ресурси и отнема URL
на видеото като параметър. Например, първото претоварване поддържа просто въвеждане на онлайн видео от YouTube както и Vimeo ресурси.
Следният пример за код показва как да вмъкнете онлайн видео от Vimeo в документ:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertOnlineVideo("https://youtu.be/t_1LYZ102RA", 360.0, 270.0); | |
// We can watch the video from Microsoft Word by clicking on the shape. | |
doc.save(getArtifactsDir() + "DocumentBuilder.InsertVideoWithUrl.docx"); |
Второто претоварване работи с всички други видео ресурси и приема вградени HTML код като параметър. HTML кодът за вграждане на видео може да варира в зависимост от доставчика, така че се свържете със съответния доставчик за подробности.
Следният пример за код показва как да вмъкнете онлайн видео в документ с помощта на такъв HTML код:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
String videoUrl = "https://vimeo.com/52477838"; | |
String videoEmbedCode = "<iframe src=\"https://player.vimeo.com/video/52477838\" width=\"640\" height=\"360\" frameborder=\"0\" " + | |
"title=\"Aspose\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"; | |
byte[] thumbnailImageBytes = IOUtils.toByteArray(getAsposelogoUri().toURL().openStream()); | |
BufferedImage image = ImageIO.read(new ByteArrayInputStream(thumbnailImageBytes)); | |
// 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.getWidth(), image.getHeight()); | |
doc.save(getArtifactsDir() + "DocumentBuilder.InsertOnlineVideoCustomThumbnail.docx"); |