Ole Nesneleri ile Çalışmak

OLE ‘Object Linking and Embedding’ anlamına gelir. Üçüncü taraf uygulamaları tarafından oluşturulan ya da düzenlenmiş " nesneler" içeren belgelere kullanıcıların çalışmasına olanak tanıyan teknoloji budur. Diğer bir deyişle, OLE bir uygulamanın bu " nesneleri" başka bir uygulama için düzenleme amacıyla dışarı aktarmasına ve sonra bunları bazı ek içeriklerle geri içeri aktarmasına izin verir.

Bu makalede, bir OLE nesnesi ve özelliklerini bir belgeye ekleyeceğiz.

Oluştur Ole Nesnesi

Eğer OLE Nesnesi istiyorsanız, InsertOleObject yöntemini çağırın ve onu ProgId açıkça diğer parametrelerle geçirin.

Aşağıdaki kod örneğinde, bir belgeye OLE nesnesi nasıl ekleneceğini göstermektedir:

// 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 Nesnesi Eklerken Dosya Adı ve Uzantısını Ayarla

OLE paketi, bir OLE işleyicisi bilinmiyorsa gömülü nesneleri depolamak için “miras” ve “belgelenmemiş” bir yoldur.

Erken Windows sürümleri gibi Windows 3.1, 95 ve 98 bir Packager.exe uygulaması vardı, bu belgeye herhangi bir tür veri eklemek için kullanılabilir. Bu uygulama artık Windows, ancak Microsoft Word ve diğer uygulamalar hala OLE elemanı eksik veya bilinmediğinde veri eklemek için bunu kullanıyor. OlePackage sınıfı kullanıcıların OLE Paket özellikleri erişmesine izin veriyor.

Aşağıdaki kod örneği, OLE Paketi için dosya adı, uzantı ve görüntüleme adını nasıl ayarlayacağınızı göstermektedir:

// 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");
}

OLE Nesnesi Ham Verilere Erişim Alın

kullanıcıların çeşitli özelliklerini ve OleFormat sınıfının yöntemlerini kullanarak OLE nesne verilerine erişmesi mümkündür. Örneğin, OLE nesnesinin ham verilerini veya bir kaynak dosyasının yolunu ve adını almak mümkündür.

Aşağıdaki kod örneği, GetRawData yöntemini kullanarak OLE nesne ham verileri almayı gösterir:

// 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 Nesnesini Simge Olarak Ekle

OLE nesneleri görüntüleri olarak belgelere de eklenebilir.

Aşağıdaki kod örneği, bir simge olarak OLE nesnesini eklemeyi nasıl gösterir. Bu amaçla, DocumentBuilder sınıfı InsertOleObjectAsIcon yöntemini ortaya çıkarır.

// 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");

Aşağıdaki kod örneği, bir akıştan belgeye gömülü OLE nesnesi eklemenin nasıl yapılacağını göstermektedir:

// 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");

Çevrimiçi Videoyu Ekle

Word belgesi içinde online video eklenebilir “Ekle” > “Online Video” sekmesinden. Geçerli konumda bir belgeye çevrimiçi bir video eklemek için InsertOnlineVideo yöntemini çağırın:

The DocumentBuilder sınıfı bu yöntemin dört aşırı yüklemesini tanıtır. İlk biri en popüler video kaynaklarıyla çalışır ve videonun URL‘ünü parametre olarak alır. Örneğin, ilk aşırı yükleme YouTube ve Vimeo kaynaklarından çevrimiçi videoları basitçe eklemeyi destekler.

Aşağıdaki örnek kod, bir belgeye Vimeo ‘den nasıl bir çevrimiçi video ekleyeceğinizi gösterir:

// 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");

İkinci aşırı yükleme tüm diğer video kaynaklarıyla çalışır ve gömülü HTML kodunu parametre olarak alır. Bir videoyu gömmek için gereken HTML kodu sağlayıcıya göre farklılık gösterebilir, bu nedenle ayrıntılar için ilgili sağlayıcıya danışın.

Aşağıdaki kod örneği, bir HTML kodu kullanarak bir belgeden nasıl bir internet videosu ekleneceğini göstermektedir:

// 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");