# Re: LaTeX - some logos print, others don't.

• Subject: Re: LaTeX - some logos print, others don't.
• From: Stroller <..hidden..>
• Date: Mon, 23 Apr 2007 01:46:46 +0100

Ok,


I've condensed the description of my problem below, so it's worth re- reading if you don't know what I'm on about.

Basically, this code:

my $temphash;  if ($self->{format} =~ /(postscript|pdf)/ || $self->{media} eq 'email' ) { $temphash{out} = $self->{OUT};$self->{OUT} = "$self->{tmpfile}"; File::Copy::copy( "$self->{templates}/logo.png",
"${LedgerSMB::Sysconfig::tempdir}/" ); File::Copy::copy( "$self->{templates}/logo.eps",
"\${LedgerSMB::Sysconfig::tempdir}/"
);


from Form.pm treats the filenames logo.png and logo.eps specially, when printing invoices. It didn't around SL 2.6.21 or so.


So a user template wanting to include other graphics b0rks out. As I described in my previous reply to Chris' below comments <http:// tinyurl.com/2mjfqo>, full path names to additional graphics don't _seem_ to work for me.

IE:
# sudo grep logo /usr/local/ledger-smb/templates/stroller/invoice.tex
\includegraphics[height=2cm]{logo}

\includegraphics[height=2cm]{/usr/local/ledger-smb/templates/ stroller/logo-outline} \includegraphics[height=2cm]{/usr/local/ledger-smb/templates/ stroller/logo-outline.png} \includegraphics[height=2cm]{/usr/local/ledger-smb/templates/ stroller/logo-outline.eps}

_still_ only prints out the file called "logo".


Anyway, this is a problem, because here I use the ifpdf package to determine whether to print my colour logo or my black & white one:

\ifpdf
\includegraphics[height=1cm]{logo-colour}
\else
\includegraphics[height=1cm]{logo-outline}
\fi


This is because my full-colour logo looks rubbish when printed out on my black & white laser printer. Customers get a full colour copy of the logo when I email them the PDF version of the invoice - in black & white the "outline" version of the logo looks much more professional.


Obviously, now I'm aware of the problem I can change "logo-colour.*" to "logo.*" and I'm able to print something other than "SMB-Ledger" at the top of my invoices.


To be honest, this isn't a massively big deal for me, as I only print out my own copy of the invoice on my B&W laser printer, and this just gets filed in my records, never to be seen by anyone important.


I assume that logo.png & logo.eps are treated special for security reasons. I don't entirely understand this - if someone can inject my- image.png. or .my-image.eps into both the templates directory & the template itself, then can't they as easily just overwite the original logo.* which you are trusting to be safe?


However, as I've demonstrated above, Chris' reply about the absolute path doesn't _seem_ to be correct, so there's no way I can work around it or for users to otherwise include multiple graphics in their templates.

Stroller.

On 17 Apr 2007, at 06:28, Chris Travers wrote:

...
In 1.2.2-3, you should change the LaTeX templates to use the absolute
path to any custom logos.  We cant really parse the LaTeX to know
which files to copy to /tmp/ and that would not be safe anyway.
...

On 4/16/07, Stroller <..hidden..> wrote:

...
Basically, my logos don't print in the invoice. The logo shipped with
L-SMB will print, but not mine ...

...

It really frustrates me, because trying with this invoice.tex:

\documentclass{minimal}
\usepackage[a4paper,landscape,dvips]{geometry}
\geometry{a4paper,landscape,
left=15mm,right=15mm,top=1cm,bottom=1cm}
\usepackage{graphicx}
\begin{document}
\noindent
top-left\hfill top-right
\noindent
\includegraphics[height=2cm]{logo}
\includegraphics[height=2cm]{logo-outline}
\par \vfill
\noindent
bottom-left\hfill bottom-right
\end{document}

... the logo shipped with Ledger-SMB (I created a new templates
directory for my user, based on the demo templates; I have nor
renamed or deleted or touched in anyway the L-SMB logos) prints fine,
but my logo (logo-outline) does not.