Praca z obiektami Ole
OLE oznacza “Łączenie obiektów i osadzanie”. Jest to technologia, za pomocą której użytkownicy mogą pracować z dokumentami zawierającymi “obiekty” utworzone lub edytowane przez aplikacje trzeciej partii. Oznacza to, że OLE pozwala na eksportowanie tych “obiektów” do innej aplikacji do edycji, a następnie importuje je z powrotem z dodatkową zawartością.
W tym artykule porozmawiamy o umieszczeniu obiektu OLE i umieszczeniu jego właściwości w dokumencie.
Wstaw obiekt ole
Jeśli chcesz OLE Object, zadzwoń do InsertOleObject metody i przekazać go ProgId wyraźnie z innymi parametrami.
Poniższy przykład kodu pokazuje jak wstawić OLE Obiekt do dokumentu:
// 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"); |
Ustaw nazwę i rozszerzenie pliku podczas wprowadzania obiektu OLE
Pakiet OLE jest dziedzicznym i “nieudokumentowanym” sposobem przechowywania wbudowanych obiektów, jeżeli nie jest znany opiekun OLE.
Wczesne Windows wersje takie jak Windows 3.1, 95 i 98 miały Packager. exe aplikacja, która może być wykorzystana do umieszczania w dokumencie wszelkiego rodzaju danych. Wniosek ten jest obecnie wyłączony z Windows, ale Microsoft Word i inne aplikacje nadal używają go do osadzania danych, jeśli nie ma lub nie jest znany opiekun OLE. W OlePackage
klasa umożliwia użytkownikom dostęp do właściwości pakietu OLE.
Poniższy przykład kodu pokazuje jak ustawić nazwę pliku, rozszerzenie i nazwę wyświetlacza dla pakietu 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"); | |
} |
Uzyskaj dostęp do Surowych Danych OLE Object
Użytkownicy mogą uzyskać dostęp do danych OLE przy użyciu różnych właściwości i metod OleFormat
Klasa. Na przykład, można uzyskać OLE
obiekt surowe dane lub ścieżka i nazwa pliku źródłowego dla powiązanego obiektu OLE.
Poniższy przykład kodu pokazuje, jak uzyskać OLE Object surowe dane za pomocą GetRawData Metoda:
// 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(); |
Wstaw OLE Obiekt jako ikona
Obiekty OLE można również umieścić w dokumentach jako obrazy.
Poniższy przykład kodu pokazuje jak wstawić OLE Object jako ikonę. W tym celu DocumentBuilder klasa ujawnia InsertOleObjectAsIcon Metoda.
// 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"); |
Poniższy przykład kodu pokazuje jak umieścić wbudowany obiekt OLE jako ikonę ze strumienia do dokumentu:
// 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"); |
Wstaw wideo online
Wideo online można umieścić w dokumencie Word z zakładki * “insert” > “Online Video” *. Można umieścić wideo online do dokumentu w obecnej lokalizacji przez wywołanie InsertOnlineVideo Metoda:
W DocumentBuilder klasa wprowadza cztery przeciążenia tej metody. Pierwszy pracuje z najbardziej popularnych zasobów wideo i bierze URL
obrazu jako parametru. Na przykład pierwsze przeciążenie obsługuje proste wstawianie wideo online z YouTube oraz Vimeo zasoby.
Poniższy przykład kodu pokazuje, jak umieścić wideo online z Vimeo w dokumencie:
// 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"); |
Drugie przeciążenie współpracuje ze wszystkimi innymi zasobami wideo i przyjmuje wbudowany kod HTML jako parametr. Kod HTML do umieszczania wideo może się różnić w zależności od dostawcy, więc skontaktuj się z odpowiednim dostawcą informacji.
Poniższy przykład kodu pokazuje, jak umieścić wideo online w dokumencie przy użyciu takiego kodu 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"); |