Utilizzo di oggetti Ole
OLE è l’acronimo di “Object Linking and Embedding”. Questa è la tecnologia con cui gli utenti possono lavorare con documenti contenenti “oggetti” creati o modificati da applicazioni di terze parti. Cioè, OLE consente a un’applicazione di esportare questi “oggetti” in un’altra applicazione per la modifica e quindi importarli con alcuni contenuti aggiuntivi.
In questo articolo, parleremo dell’inserimento di un oggetto OLE e dell’impostazione delle sue proprietà in un documento.
Inserisci Ole Oggetto
Se si desidera un oggetto OLE, chiamare il metodo InsertOleObject e passarlo esplicitamente a ProgId con altri parametri.
Il seguente esempio di codice mostra come inserire OLE Oggetto in un documento:
// 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"); |
Impostare il nome del file e l’estensione quando si inserisce l’oggetto OLE
Il pacchetto OLE è un modo legacy e “non documentato” per archiviare oggetti incorporati se un gestore OLE è sconosciuto.
Le prime versioni di Windows come Windows 3.1, 95 e 98 avevano un’applicazione Packager.exe che poteva essere utilizzata per incorporare qualsiasi tipo di dati nel documento. Questa applicazione è ora esclusa da Windows, ma Microsoft Word e altre applicazioni lo usano ancora per incorporare i dati se il gestore OLE è mancante o sconosciuto. La classe OlePackage
consente agli utenti di accedere alle proprietà OLE Package.
Nell’esempio di codice riportato di seguito viene illustrato come impostare il nome del file, l’estensione e il nome visualizzato per OLE Package:
// 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"); | |
} |
Ottieni l’accesso ai dati grezzi dell’oggetto OLE
Gli utenti possono accedere ai dati dell’oggetto OLE utilizzando varie proprietà e metodi della classe OleFormat
. Ad esempio, è possibile ottenere i dati grezzi dell’oggetto OLE
o il percorso e il nome di un file di origine per l’oggetto OLE collegato.
L’esempio di codice seguente mostra come ottenere dati grezzi oggetto OLE utilizzando il metodo 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(); |
Inserisci OLE Oggetto come icona
Gli oggetti OLE possono anche essere inseriti nei documenti come immagini.
Il seguente esempio di codice mostra come inserire OLE Oggetto come icona. A tale scopo, la classe DocumentBuilder espone il metodo 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"); |
L’esempio di codice seguente mostra come inserire un oggetto incorporato OLE come icona da un flusso nel documento:
// 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"); |
Inserisci Video online
Il video online può essere inserito nel documento Word dalla scheda “Insert” > “Online Video”. È possibile inserire un video online in un documento nella posizione corrente chiamando il metodo InsertOnlineVideo:
La classe DocumentBuilder introduce quattro sovraccarichi di questo metodo. Il primo funziona con le risorse video più popolari e prende il URL
del video come parametro. Ad esempio, il primo sovraccarico supporta l’inserimento semplice di video online da YouTube e Vimeo resources.
L’esempio di codice seguente mostra come inserire un video online da Vimeo in un documento:
// 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"); |
Il secondo sovraccarico funziona con tutte le altre risorse video e prende il codice HTML incorporato come parametro. Il codice HTML per l’incorporamento di un video può variare a seconda del provider, quindi contattare il rispettivo provider per i dettagli.
L’esempio di codice seguente mostra come inserire un video online in un documento utilizzando tale codice 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"); |