Cairo To Word (@Olaf)

21/05/2013 - 19:17 von Lothar Geyer | Report spam
Hallo Olaf,

ich habe eine Cairo-Surface, die ich in ein Word-Dokument einbauen
möchte. Dazu will ich in einer Word-Vorlage einen Rahmen (oder ein
anderes passendes Element) einbauen, das einen vordefinierten Namen
haben muss. In dieses Element soll die Surface eingepasst werden und
sich der Größe des Elements anpassen. Anpassen in dem Sinne, dass ich
einen Faktor zur Vergrößerung /-kleinerung bestimme und die Surface dann
an der vorgegebenen Stelle im Dokument ausgedruckt wird.

Geht das? Und wenn ja, wie?
Gibt es Beschrànkungen bezüglich der Office-Versionen?

Vielen Dank schon mal im Voraus.

Lothar Geyer
 

Lesen sie die antworten

#1 Schmidt
22/05/2013 - 00:56 | Warnen spam
Am 21.05.2013 19:17, schrieb Lothar Geyer:
Hallo Olaf,

ich habe eine Cairo-Surface, die ich in ein Word-Dokument einbauen
möchte.



Eine cairo-Surface kann ja verschiedenen Typs sein.
Echte Vektor-SurfaceTypen wàren z.B. PDF, aber auch SVG-Surfaces
(mit den entspr. optional schreibbaren Fileformaten, nachdem man
gegen die jew. Surface entspr. Drawing-Kommandos abgesetzt hat).

Word kann aber mit PDF oder SVG als Importformat soweit ich weiss
erstmal nix anfangen - das einzig "gut unterstützte" Vektor-Format
in Word (über mehrere Word-Versionen hinweg) wàre *.wmf bzw. *.emf.


Dazu will ich in einer Word-Vorlage einen Rahmen (oder ein anderes
passendes Element) einbauen, das einen vordefinierten Namen haben
muss. In dieses Element soll die Surface eingepasst werden und sich
der Größe des Elements anpassen. Anpassen in dem Sinne, dass ich einen
Faktor zur Vergrößerung /-kleinerung bestimme und die Surface dann
an der vorgegebenen Stelle im Dokument ausgedruckt wird.

Geht das? Und wenn ja, wie?



Wie gesagt - letztlich làuft es auf eine Grafik-Format-Unterstützung
(innerhalb des Rahmens) hinaus - idealerweise ein Vektor-Format -
aber Cairo kann (so direkt in meinem Wrapper zumindest) kein Windows-
Metafile-Format erzeugen - und Word wiederum versteht kein SVG und
kein PDF als "Container- ImageStream-Input".

Was also bleibt, sind wie so oft die Pixel-basierten Bildformate
(*.bmp, *.png, *.jpg, *.gif).

Also der überlicherweise (z.B. auch in den Widgets) benutzte cairo-
ImageSurface-Typ. Der aktuelle Inhalt dieser Surface kann jederzeit zu
*.png oder *.jpg konvertiert werden (nicht nur als "File auf Platte"
auch direkt als ByteArray).

Die ByteArray-Option erlaubt eigtl. recht hohe Flexibilitàt beim
Export ... z.B. als "Base64-encodierte dataUrl" in einem HTML-
Schnipsel - oder auch als entpr. eingepackter RTF-Image-Tag-Blob.

Mit beiden Varianten sollte ein "Word-Container-Frame" eigtl. was
anfangen können - vielleicht geht es aber auch noch direkter - und
man kann ein Word-Image-Frame definieren, dass z.B. Png-Streams
direkt annimmt - keine Ahnung - am besten mal in einem Word-Forum
nachfragen, welche Möglichkeiten an "Image-Einbettung in vordefinierte
ContainerFrames" Word anbietet - und ob man die (z.B. per VBA) nicht
auch direkt von einem ByteStream oder einem ByteArray füttern kann
(*.png, *.bmp, *.jpg geht wie gesagt direkt von einer Image-Surface
aus zu erzeugen).
Du könntest also Deine Frage im Word-Forum (oder auch hier)
direkt auf dieses Problem reduzieren...:

Visualisierung eines *.png-Files (oder Streams) in einem passenden
Word-FrameContainer - "How to?" ;-)

Olaf

Ähnliche fragen