Re: inserting image in dynamic .prep file without saving image first

Robin Becker <[email protected]>
Newsgroups gmane.comp.python.reportlab.user
Message-ID <[email protected]>
On 29/08/2014 01:00, David wrote:
> Dear list,
>
> following this recipe ( http://stackoverflow.com/a/19160507 ), I am
> trying to emulate the "not saving an image on the hard disk" approach
> for z3c and preppy in an dynamic .prep file.
>
> I fail and hope for your wisdom.
>
> Two questions:
>



> a) what object type does z3c.rml expect for images?
I'm not exactly sure what's meant here: rml contains only text so unless z3c.rml 
provides plugin flowables or graphics theres only text available.


> b) How would you suggest do I approach the goal of not saving images on
> my hard drive yet inserting them in a pdf via z3c?
>
in modern rml you can use an inlineData tag inside an image tag. Our tests 
include this

<illustration height="200" width="150">	
	<image file="" x="0" y="0">
		<inlineData filters="ascii85 
gzip">Gaob@B35f%hoFCm&gt;=?Gi.rhAp;,b;f,==7C&gt;I_7M'on0oMCEGjZHTBh:!;#n7qH68DOY&lt;?C0#"@bDN`&amp;TDSYY(['=on[krFIEqTY4eZ:-1s\Q7i!$o?_#G/]#R#]D?n`E!JO#o*(^pV(_\!0-QBi:!M+"%6BJ^W[_-jNM*"IbEj0c;&amp;#m&gt;j?NXh1BeCE+"e'ldtf-c\O"pP9dL5
.............
[U.b0P5FS5q@Ae$iXUOQR?/_]6\uD;_Wi*G.Y&lt;&amp;_n\uUU-5QCdGa-HhT~&gt;</inlineData>
	</image>
</illustration>

so in your prep file you can just create the image as bytes and convert to a 
readable form using various compressions and encodings. The dtd says this


<!ELEMENT image (inlineData?)>
<!ATTLIST image
     file CDATA #REQUIRED
     x CDATA #REQUIRED
     y CDATA #REQUIRED
     width CDATA #IMPLIED
     height CDATA #IMPLIED
     inline CDATA #IMPLIED
     transparency_mask CDATA "auto"
     preserveAspectRatio (yes | no | 0 | 1) #IMPLIED
     showBoundary (yes | no | 0 | 1) #IMPLIED
     anchor (n|ne|e|se|s|sw|w|nw|c) #IMPLIED
     pdfBoxType (MediaBox | CropBox| TrimBox | BleedBox | ArtBox) #IMPLIED
     required (yes | no | 0 | 1 | true | false) "true"
	alt_file CDATA #IMPLIED
     type (pdf|bitmap)	#IMPLIED
 >
<!ELEMENT inlineData (#PCDATA)>
<!--inlineData filters is a space separated list of filters which are applied in 
order
	 allowed filters are
	 base64 | ascii85 | bzip2 | gzip
	 -->
<!ATTLIST inlineData
	filters CDATA #REQUIRED
	>
<!ELEMENT setFont EMPTY>
<!ATTLIST setFont
     name CDATA #REQUIRED
     size CDATA #REQUIRED
     leading CDATA #IMPLIED
 >


> Thanks for your guidance and creativity!
>
> David
....

-- 
Robin Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.