[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: latex foldmarks



Hi everyone,
At least one person on list list asked if I could let them know if I managed to get "fold marks" on my pages. All kudos to Brett Neumeier who discovered how to do this with a latex package that
is probably part of the default latex installation (depending on your OS).

Below are Brett's notes, and attached is his modification to the default invoice.tex.

It did work "straight out of the box" - I just copied the relevant lines into my invoice.tex. I also moved the start and end into the printable region for my printer, about 0.25 inch or 18 points in from the borders.

Paul

========================================================================
Hi Paul,

I finally had a chance to go poking around in the textpos documentation.
It turns out it's pretty easy.

I'm attaching a modified version of templates/demo/invoice.tex with the
changes I made.  Note, I found that my TeX installation already included
the textpos package; if yours doesn't, you'll have to install it.  But
if you're using a UNIX-y system with the teTeX package, you're probably
already set up with it.

Two notes --
1: I haven't looked at how the LaTeX templates are processed by
LedgerSMB, so this might not work precisely right out-of-the-box.  It
probably will, but ... haven't tried it, so I don't know.

2: The foldmarks that are put on the page are 9 points wide and 0.2
points thick, and start at coordinates (all measured in points):
(1,264), (1,528), (602,264), (602,528).  The sections that define all
this are the bits that look like this:

\begin{textblock*}{9pt}(01pt,264pt)\noindent
 \rule{\hsize}{.2pt}
\end{textblock*}

(I put them all at the beginning of the document template, but they
could really go almost anywhere.)

You can customize the positioning and size of the fold marks so that
they are within the printable area of your output devices, and are
generally in the locations you prefer, by making the obvious changes.

I also added a little commented-out section in the template that has
embedded instructions in it.

Let me know how this works for you, and feel free to write back if you
have difficulties.  If this gets you what you need, please consider
sending a note back to the LSMB mailing list reporting your success!

Regards,

Brett Neumeier



<?lsmb FILTER latex -?>
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage[letterpaper,top=2cm,bottom=1.5cm,left=1.1cm,right=1.5cm]{geometry}
\usepackage{graphicx}
\usepackage[absolute]{textpos}

\begin{document}

% FOLD MARKS
% Each textblock* environment defines a single foldmark
% the syntax is:
%    \begin{textblock*}{WIDTH}(X-POSITION,Y-POSITION)\noindent
%      \rule{\hsize}{HEIGHT}
%    \end{textblock*}
% WIDTH, HEIGHT, X-POSITION, and Y-POSITION can be given in a variety
% of units. I prefer points (1/72 inch) because they are precise enough
% for almost anything.
\begin{textblock*}{9pt}(01pt,264pt)\noindent
  \rule{\hsize}{.2pt}
\end{textblock*}
\begin{textblock*}{9pt}(01pt,528pt)\noindent
  \rule{\hsize}{.2pt}
\end{textblock*}                                                                
\begin{textblock*}{9pt}(602pt,264pt)\noindent
  \rule{\hsize}{.2pt}
\end{textblock*} 
\begin{textblock*}{9pt}(602pt,528pt)\noindent
  \rule{\hsize}{.2pt}
\end{textblock*}


\pagestyle{myheadings}
\thispagestyle{empty}

\fontfamily{cmss}\fontsize{10pt}{12pt}\selectfont

\newsavebox{\ftr}
\sbox{\ftr}{
  \parbox{\textwidth}{
  \tiny
  \rule[1.5em]{\textwidth}{0.5pt}
Payment due NET <?lsmb terms ?> Days from date of Invoice. Interest on overdue amounts will acrue at the rate of 12\% per annum starting from <?lsmb duedate ?> until paid in full. Items returned are subject to a 10\% restocking charge.
A return authorization must be obtained from <?lsmb company ?> before goods are returned. Returns must be shipped prepaid and properly insured.
<?lsmb company ?> will not be responsible for damages during transit.
  }
}

<?lsmb INCLUDE letterhead.tex ?>

% Disable old pagebreak handling
%<?xlsmb pagebreak 65 27 37 ?>
%\end{tabularx}
%
%  \rule{\textwidth}{2pt}
%  
%  \vspace{0.2cm}
%
%  \hfill
%  ..hidden..@{}}
%  & Subtotal & <?xlsmb sumcarriedforward ?> \\
%  \end{tabularx}
%
%\newpage
%
%\markboth{<?xlsmb company ?>\hfill <?xlsmb invnumber ?>}{<?xlsmb company ?>\hfill <?xlsmb invnumber ?>}
%
..hidden..@{}}
%  \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
%    \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
%  & carried forward from page <?xlsmb lastpage ?> & & & & & & & <?xlsmb sumcarriedforward ?> \\ [0.5em]
%<?xlsmb end pagebreak ?>


\vspace*{0.5cm}

\parbox[t]{.5\textwidth}{
\textbf{To}
\vspace{0.3cm}

<?lsmb name ?>

<?lsmb address1 ?>

<?lsmb address2 ?>

<?lsmb city ?>
<?lsmb IF state ?>
\hspace{-0.1cm}, <?lsmb state ?>
<?lsmb END ?>
<?lsmb zipcode ?>

<?lsmb country ?>

\vspace{0.3cm}

<?lsmb IF contact ?>
<?lsmb contact ?>
\vspace{0.2cm}
<?lsmb END ?>

<?lsmb IF customerphone ?>
Tel: <?lsmb customerphone ?>
<?lsmb END ?>

<?lsmb IF customerfax ?>
Fax: <?lsmb customerfax ?>
<?lsmb END ?>

<?lsmb email ?>
}
\parbox[t]{.5\textwidth}{
\textbf{Ship To}
\vspace{0.3cm}

<?lsmb shiptoname ?>

<?lsmb shiptoaddress1 ?>

<?lsmb shiptoaddress2 ?>

<?lsmb shiptocity ?>
<?lsmb IF shiptostate ?>
\hspace{-0.1cm}, <?lsmb shiptostate ?>
<?lsmb END ?>
<?lsmb shiptozipcode ?>

<?lsmb shiptocountry ?>

\vspace{0.3cm}

<?lsmb IF shiptocontact ?>
<?lsmb shiptocontact ?>
\vspace{0.2cm}
<?lsmb END ?>

<?lsmb IF shiptophone ?>
Tel: <?lsmb shiptophone ?>
<?lsmb END ?>

<?lsmb IF shiptofax ?>
Fax: <?lsmb shiptofax ?>
<?lsmb END ?>

<?lsmb shiptoemail ?>
}
\hfill

\vspace{1cm}

\textbf{I N V O I C E}
\hfill

\vspace{1cm}

\begin{tabularx}{\textwidth}{*{7}{|X}|} \hline
  \textbf{Invoice \#} & \textbf{Date} & \textbf{Due} & \textbf{Order \#}
  & \textbf{Salesperson} & \textbf{Shipping Point} & \textbf{Ship via} \\ [0.5em]
  \hline
  <?lsmb invnumber ?> & <?lsmb invdate ?> & <?lsmb duedate ?> & <?lsmb ordnumber ?> & <?lsmb employee ?>
  & <?lsmb shippingpoint ?> & <?lsmb shipvia ?> \\
  \hline
\end{tabularx}

\vspace{1cm}

..hidden..@{}}
  \textbf{Pos} & \textbf{Number} & \textbf{Description} & & \textbf{Qt'y} &
    \textbf{Unit} & \textbf{Price} & \textbf{Disc \%} & \textbf{Amount} \\ [0.5em]
<?lsmb FOREACH number ?>
<?lsmb lc = loop.count - 1 ?>
  <?lsmb runningnumber.${lc} ?> & 
  <?lsmb number.${lc} ?> & 
  <?lsmb description.${lc} ?> & 
  <?lsmb deliverydate.${lc} ?> &
  <?lsmb qty.${lc} ?> & 
  <?lsmb unit.${lc} ?> &
  <?lsmb sellprice.${lc} ?> &
  <?lsmb discountrate.${lc} ?> &
  <?lsmb linetotal.${lc} ?> \\
<?lsmb END ?>
\end{tabularx}


\parbox{\textwidth}{
\rule{\textwidth}{2pt}

\vspace{0.2cm}

\hfill
..hidden..@{}}
  & Subtotal & <?lsmb subtotal ?> \\
<?lsmb FOREACH tax ?>
<?lsmb lc = loop.count - 1 ?>
  & <?lsmb taxdescription.${lc} ?> on <?lsmb taxbase.${lc} ?> & <?lsmb tax.${lc} ?> \\
<?lsmb END ?>
<?lsmb IF paid ?>
  & Paid & - <?lsmb paid ?> \\
<?lsmb END ?>
  \hline
<?lsmb IF total ?>
  & Balance Due & <?lsmb total ?>
<?lsmb END ?>
\end{tabularx}

\vspace{0.3cm}

<?lsmb text_amount ?> ***** <?lsmb decimal ?>/100
\hfill
All prices in \textbf{<?lsmb currency ?>}.

\vspace{12pt}

<?lsmb notes ?>
}

\vfill

<?lsmb IF paid_1 ?>
..hidden..@{}}
  \textbf{Payments} & & & \\
  \hline
  \textbf{Date} & & \textbf{Source} & \textbf{Amount} \\
<?lsmb END ?>
<?lsmb FOREACH payment ?>
<?lsmb lc = loop.count - 1 ?>
  <?lsmb paymentdate.${lc} ?> & <?lsmb paymentaccount.${lc} ?> & <?lsmb paymentsource.${lc} ?> & <?lsmb payment.${lc} ?> \\
<?lsmb END ?>
<?lsmb IF paid_1 ?>
\end{tabularx}
<?lsmb END ?>

\vspace{1cm}

\centerline{\textbf{Thank You for your valued business!}}

\rule{\textwidth}{0.5pt}

\usebox{\ftr}

\end{document}
<?lsmb END ?>