|
Beschreibe hier die neue Seite. |
|
Verschoben von HallOfShame <pre> "Images in RTF" In the RTF Pocket Guide's section on "Embedding Images", I say this: In an ideal world, RTF would allow you to insert a picture into a document by simply dropping a hex-encoded GIF, JPEG, or PNG file into your RTF code. But RTF doesn't do things that way. The RTF specification, on the subject of pictures, explains a {\pict...} construct that contains picture data (typically as a long series of hexadecimal digits). And the crucial sentence: But the picture data encoded in the {\pict...} construct is in a binary format that can't be converted to easily from a conventional image format (i.e., GIF, JPEG, or PNG). The binary format that I'm talking about is actuall WMF (Windows Metafile), incidentally -- whenever I'd try dropping a gif into a document and the examining how it saved, it'd be encased in inscrutible WMF code (or, even worse, MSWord-specific binary formats). One can, I'm sure, convert GIF to WMF, but not easily. But a reader of mine, Dave Thielen, has pointed out to me something that totally escaped me, my experienced tech-editors, and everyone else I've ever asked about this (and I asked far and wide) -- namely, that the contents of a {\pict...} construct CAN be in an WMF, OR they can be in JPG or PNG (and a few other uninteresting formats besides). That is, whereas you can't dump raw GIF data into a \pict construct, you CAN dump raw JPG/PNG data in -- encoded as hex data, and prefaced by the image heigh and width. (Actually, you can use unencoded data as part of a \binN keyword, but this is probably a bad idea for various minor pragmatic reasons, and is in any case not covered in the book.) Specifically, you use {\pict\jpegblip\picwX\pichY...} or {\pict\pngblip\picwX\pichY...} where X is the image's width in pixels and Y is the image's height in pixels. The content is simply hex encoded. I suggest adding a newline every so often -- I like adding one every 64 characters, and maybe even before and after the data as a whole. This approach is demonstrated by the rtf_image_embed_sample.pl program in this directory, and its sample input files hypnocat.jpg and hypnocat.png, and output files hypnocat_jpg.rtf and hypnocat_png.rtf. You can stick other, optional, commands between the \pichY and the picture data. Consult the RTF specification's section "Pictures" for all the gory details, but here's a quick reference to the eight interesting ones: \picwgoalN Desired width of the picture, in twips. \pichgoalN Desired height of the picture, in twips. \picscalexN Horizontal scaling value. The N argument is a value representing a percentage (the default is 100 percent). \picscaleyN Vertical scaling value. The N argument is a value representing a percentage (the default is 100 percent). \piccroptN \piccropbN \piccroprN \piccroplN The top, bottom, right, and left cropping values, in twips. A positive value crops toward the center of the picture; a negative value crops away from the center, adding a space border around the picture (the default value is 0). Remember, that's just quick reference; the spec is more detailed, mostly for options that used only with embedding image types other than PNG and JPG. </pre> Gefunden in dies wiederum gefunden auf dies wiederum gefunden auf dies wiederum gefunden auf dies wiederum gefunden auf dies wiederum gefunden auf dies wiederum gefunden auf dies wiederum gefunden per Google-Groups-Suche nach "html2rtf". |
"Images in RTF"
In the RTF Pocket Guide's section on "Embedding Images", I say this:
In an ideal world, RTF would allow you to insert a picture into a
document by simply dropping a hex-encoded GIF, JPEG, or PNG file into
your RTF code. But RTF doesn't do things that way. The RTF
specification, on the subject of pictures, explains a {\pict...}
construct that contains picture data (typically as a long series of
hexadecimal digits).
And the crucial sentence:
But the picture data encoded in the {\pict...} construct is in a binary
format that can't be converted to easily from a conventional image
format (i.e., GIF, JPEG, or PNG).
The binary format that I'm talking about is actuall WMF (Windows
Metafile), incidentally -- whenever I'd try dropping a gif into a
document and the examining how it saved, it'd be encased in inscrutible
WMF code (or, even worse, MSWord-specific binary formats). One can,
I'm sure, convert GIF to WMF, but not easily.
But a reader of mine, Dave Thielen, has pointed out to me something that
totally escaped me, my experienced tech-editors, and everyone
else I've ever asked about this (and I asked far and wide) -- namely,
that the contents of a {\pict...} construct CAN be in an WMF, OR
they can be in JPG or PNG (and a few other uninteresting formats
besides). That is, whereas you can't dump raw GIF data into a \pict
construct, you CAN dump raw JPG/PNG data in -- encoded as hex data,
and prefaced by the image heigh and width.
(Actually, you can use unencoded data as part of a \binN keyword, but
this is probably a bad idea for various minor pragmatic reasons, and is
in any case not covered in the book.)
Specifically, you use {\pict\jpegblip\picwX\pichY...} or
{\pict\pngblip\picwX\pichY...} where X is the image's width in pixels
and Y is the image's height in pixels. The content is simply hex
encoded. I suggest adding a newline every so often -- I like adding
one every 64 characters, and maybe even before and after the data
as a whole.
This approach is demonstrated by the rtf_image_embed_sample.pl program
in this directory, and its sample input files hypnocat.jpg and
hypnocat.png, and output files hypnocat_jpg.rtf and hypnocat_png.rtf.
You can stick other, optional, commands between the \pichY and the
picture data. Consult the RTF specification's section "Pictures"
for all the gory details, but here's a quick reference to the
eight interesting ones:
\picwgoalN
Desired width of the picture, in twips.
\pichgoalN
Desired height of the picture, in twips.
\picscalexN
Horizontal scaling value. The N argument is a value representing a
percentage (the default is 100 percent).
\picscaleyN
Vertical scaling value. The N argument is a value representing
a percentage (the default is 100 percent).
\piccroptN
\piccropbN
\piccroprN
\piccroplN
The top, bottom, right, and left cropping values, in twips.
A positive value crops toward the center of the picture; a negative
value crops away from the center, adding a space border around the
picture (the default value is 0).
Remember, that's just quick reference; the spec is more detailed, mostly
for options that used only with embedding image types other than PNG and
JPG.
Gefunden in
http://examples.oreilly.com/rtfpg/
dies wiederum gefunden auf
http://www.oreilly.com/catalog/rtfpg/
dies wiederum gefunden auf
http://search.cpan.org/~sburke/RTF-Writer-1.11/lib/RTF/Cookbook.pod
dies wiederum gefunden auf
http://search.cpan.org/~sburke/RTF-Writer-1.11/
dies wiederum gefunden auf
http://search.cpan.org/~sburke/
dies wiederum gefunden auf
http://interglacial.com/~sburke/
dies wiederum gefunden auf
http://groups.google.de/groups?selm=e7m43503DHA.1636@TK2MSFTNGP12.phx.gbl
dies wiederum gefunden per Google-Groups-Suche nach "html2rtf".