My apologies if this is already answered somewhere (typical opening I suppose) but here goes. I've modified code from the thread Creating playing cards using TikZ for the purposes of my needs. Now what I am attempting to do is
- put a 'back' on the card so when I print on cardstock the front and the back of the card lines up correctly: aka double sided
- put more than a single card on a single page.
I've been at this for two long and finally broke down to ask the question. The code below generates the face of the card. I'd like to repeat the same face on the back side of the card where I am able to change formats, styles, images, node locations, etc., and basically just have a back to the card with same dimensions and aligns properly with the correct card.
\documentclass[a4paper]{article}
\usepackage{graphicx}
\usepackage{color}
\usepackage{amsmath, amssymb}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{shadows}
\usetikzlibrary{positioning}
\usepackage{pifont}
\usepackage{fourier-orns}
\definecolor{titlebg}{rgb}{30, 30 , 30}
\begin{document}
\newcommand{\icon}{$\alpha$}
\newcommand{\cardtype}{cardtype}
\newcommand{\cardtitle}{cardtitle}
\newcommand{\cost}{cost}
\newcommand{\flavortext}{flavortext}
\newcommand{\cardcontent}{cardcontent}
\newcommand{\cardid}{cardid}
\newcommand{\cardimg}{img/test.jpg}
% TikZ/PGF Settings für die Karten
\pgfmathsetmacro{\cardwidth}{6pt}
\pgfmathsetmacro{\cardheight}{9pt}
\pgfmathsetmacro{\imagewidth}{\cardwidth*.9}
\pgfmathsetmacro{\imageheight}{0.75*\cardheight}
\pgfmathsetmacro{\stripwidth}{0.7pt}
\pgfmathsetmacro{\strippadding}{0.2pt}
\pgfmathsetmacro{\textpadding}{0.1pt}
\pgfmathsetmacro{\titley}{\cardheight-\strippadding-1.5*\textpadding-0.5*\stripwidth}
% Formen der einzelnen Kartenelemente/-bestandteile
\def\shapeCard{(0,0) rectangle (\cardwidth, \cardheight)}
\def\shapeLeftStripLong{(\strippadding,-0.2) rectangle (\strippadding+\stripwidth,\cardheight-\strippadding-\strippadding-1)}
\def\shapeLeftStripShort{(\strippadding,\cardheight-\strippadding-1) rectangle (\strippadding+\stripwidth,\cardheight+0.2)}
\def\shapeRightStripShort{(\cardwidth-\stripwidth-\strippadding,\cardheight-\strippadding-1) rectangle (\cardwidth-\strippadding,\cardheight+0.2)}
\def\shapeTitleArea{(2*\strippadding+\stripwidth,\cardheight-\strippadding) rectangle (\cardwidth-2*\strippadding-\stripwidth,\cardheight-2*\stripwidth)}
\def\shapeContentArea{(2*\strippadding+\stripwidth,0.5*\cardheight) rectangle (\cardwidth+0.2,-0.2)}
\tikzstyle{cardcorners}=[rounded corners=0.25cm]
\begin{tikzpicture}
%debug grid and point locations
\filldraw[color=red!60, fill=black!100, very thick](0, 0) circle (0.1) node[color = black!100, anchor = east]{ origin};
\filldraw[color=red!60, fill=red!100, very thick](6,0) circle (0.1) node[color = black!100, anchor = west]{card width};
\filldraw[color=red!60, fill=red!100, very thick](6,9) circle (0.1) node[color = black!100, anchor = west]{card width, card height};
\filldraw[color=black!60, fill=red!100, very thick](0,9) circle (0.1) node[color = black!100, anchor = north]{card height};
%\draw [step=.5, help lines] (0,0) grid (\cardwidth,\cardheight);
%begin card creation
% draw card boundries and clip corners
\draw[lightgray,cardcorners] \shapeCard;
\clip[cardcorners] \shapeCard;
% card image: placed first so other nodes will stack on top of this one
\tikzstyle{cardimage}=[ path picture={
\node[below=-1.5mm] at (0.5*\cardwidth,\cardheight) {
\includegraphics[width=\imagewidth cm]{#1}
};
}
]
\newcommand{\cardbackground}[1]{
\draw[cardcorners, cardimage=#1] \shapeCard;
}
\cardbackground{ \cardimg }
% card type strip
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity = 5, color = black} ] \shapeLeftStripLong node[rotate = 90, above left, font=\LARGE] { \color{white}\uppercase{ \cardtype }};
% card icon strip
\begin{scope}
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeLeftStripShort node[ rotate=0, above, yshift = -8.5, font = \LARGE ] at (0.5*\strippadding+0.5*\stripwidth, \titley){ \color{white}\uppercase{ \icon }};
\end{scope}
% card cost
\begin{scope}
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeRightStripShort node[ rotate=0, above, yshift = -8.5, font=\LARGE]
at (\cardwidth - 0.5*\stripwidth - 1.5*\strippadding, \titley)
{ \color{white}\uppercase{ \cost }};
\end{scope}
% card title strip
\fill[ color = black, opacity = .75, rounded corners=0.1cm ] \shapeTitleArea node[ text width=3.75cm, rotate=0, font=\normalsize] at (0.5*\cardwidth,\titley) { \begin{center} \color{white!100}\uppercase{\normalsize \cardtitle } \end{center} };
% card content
% card content: flavor text
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,0.5*\cardheight-\textpadding) { \textit{ \scriptsize \flavortext } };
%card content: card effect
%line above text
\draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 3.5) -- (2*\strippadding+\stripwidth+\textpadding, 3.5);
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,3.5) {
\vspace{0.05cm}
{\normalsize \cardcontent }
};
% card-ID
%line above text
\draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 0.4) -- (2*\strippadding+\stripwidth+\textpadding, 0.4);
\node[above right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding, 0.05) {
\begin{flushright} {\tiny \cardid } \end{flushright}
};
\end{tikzpicture}
\end{document}
[edit2] I want this on the back of the card....same code as before but without the fancy nodes and shapes
\begin{tikzpicture}
%debug grid and point locations
% \filldraw[color=red!60, fill=black!100, very thick](0, 0) circle (0.1) node[color = black!100, anchor = east]{ origin};
% \filldraw[color=red!60, fill=red!100, very thick](6,0) circle (0.1) node[color = black!100, anchor = west]{card width};
% \filldraw[color=red!60, fill=red!100, very thick](6,9) circle (0.1) node[color = black!100, anchor = west]{card width, card height};
% \filldraw[color=black!60, fill=red!100, very thick](0,9) circle (0.1) node[color = black!100, anchor = north]{card height};
%\draw [step=.5, help lines] (0,0) grid (\cardwidth,\cardheight);
%begin card creation
% draw card boundries and clip corners
\draw[lightgray,cardcorners] \shapeCard;
\clip[cardcorners] \shapeCard;
% card image: placed first so other nodes will stack on top of this one
\tikzstyle{cardimage}=[ path picture={
\node[below=-1.5mm] at (0.5*\cardwidth,\cardheight) {
\includegraphics[width=\imagewidth cm]{#1}
};
}
]
\newcommand{\cardbackground}[1]{
\draw[cardcorners, cardimage=#1] \shapeCard;
}
% \cardbackground{ \cardimg }
% card type strip
% \fill[red!100, rounded corners=0.1cm, drop shadow = {opacity = 5, color = black} ] \shapeLeftStripLong node[rotate = 90, above left, font=\LARGE] { \color{white}\uppercase{ \cardtype }};
% card icon strip
% \begin{scope}
% \fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeLeftStripShort node[ rotate=0, above, yshift = -8.5, font = \LARGE ] at (0.5*\strippadding+0.5*\stripwidth, \titley){ \color{white}\uppercase{ \icon }};
% \end{scope}
% card cost
% \begin{scope}
% \fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeRightStripShort node[ rotate=0, above, yshift = -8.5, font=\LARGE]
% at (\cardwidth - 0.5*\stripwidth - 1.5*\strippadding, \titley)
% { \color{white}\uppercase{ \cost }};
% \end{scope}
% card title strip
\fill[ color = black, opacity = .75, rounded corners=0.1cm ] \shapeTitleArea node[ text width=3.75cm, rotate=0, font=\normalsize] at (0.5*\cardwidth,\titley) { \begin{center} \color{white!100}\uppercase{\normalsize \cardtitle } \end{center} };
% card content
% card content: flavor text
% \node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,0.5*\cardheight-\textpadding) { \textit{ \scriptsize \flavortext } };
%card content: card effect
%line above text
% \draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 3.5) -- (2*\strippadding+\stripwidth+\textpadding, 3.5);
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,3.5) {
\vspace{0.05cm}
{\normalsize \cardcontent }
};
% card-ID
%line above text
% \draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 0.4) -- (2*\strippadding+\stripwidth+\textpadding, 0.4);
% \node[above right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding, 0.05) {
% \begin{flushright} {\tiny \cardid } \end{flushright}
% };
\end{tikzpicture}


this is how I'd like to see a page...the outline of the 9 cards is present so each print will have 9 faces and on the other side of the paper you will have their respective 9 backs. I was able to get the multiple card layouts but still not sure if this is the way to go considering the issues with attempting to get the back backs in the correct position.

the code to get the multiple cards per page is here where i would create an actual function to call this script for me to keep the code cleaner than it currently is.
\begin{tikzpicture}
%debug grid and point locations
% \filldraw[color=red!60, fill=black!100, very thick](0, 0) circle (0.1) node[color = black!100, anchor = east]{ origin};
% \filldraw[color=red!60, fill=red!100, very thick](6,0) circle (0.1) node[color = black!100, anchor = west]{card width};
% \filldraw[color=red!60, fill=red!100, very thick](6,9) circle (0.1) node[color = black!100, anchor = west]{card width, card height};
% \filldraw[color=black!60, fill=red!100, very thick](0,9) circle (0.1) node[color = black!100, anchor = north]{card height};
%\draw [step=.5, help lines] (0,0) grid (\cardwidth,\cardheight);
%begin card creation
% draw card boundries and clip corners
\draw[lightgray,cardcorners] \shapeCard;
\begin{scope}
\clip[cardcorners] \shapeCard;
% card image: placed first so other nodes will stack on top of this one
\tikzstyle{cardimage}=[ path picture={
\node[below=-1.5mm] at (0.5*\cardwidth,\cardheight) {
\includegraphics[width=\imagewidth cm]{#1}
};
}
]
\newcommand{\cardbackground}[1]{
\draw[cardcorners, cardimage=#1] \shapeCard;
}
\cardbackground{ \cardimg }
% card type strip
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity = 5, color = black} ] \shapeLeftStripLong node[rotate = 90, above left, font=\LARGE] { \color{white}\uppercase{ \cardtype }};
% card icon strip
\begin{scope}
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeLeftStripShort node[ rotate=0, above, yshift = -8.5, font = \LARGE ] at (0.5*\strippadding+0.5*\stripwidth, \titley){ \color{white}\uppercase{ \icon }};
\end{scope}
% card cost
\begin{scope}
\fill[red!100, rounded corners=0.1cm, drop shadow = {opacity=5, color = black} ] \shapeRightStripShort node[ rotate=0, above, yshift = -8.5, font=\LARGE]
at (\cardwidth - 0.5*\stripwidth - 1.5*\strippadding, \titley)
{ \color{white}\uppercase{ \cost }};
\end{scope}
% card title strip
\fill[ color = black, opacity = .75, rounded corners=0.1cm ] \shapeTitleArea node[ text width=3.75cm, rotate=0, font=\normalsize] at (0.5*\cardwidth,\titley) { \begin{center} \color{white!100}\uppercase{\normalsize \cardtitle } \end{center} };
% card content
% card content: flavor text
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,0.5*\cardheight-\textpadding) { \textit{ \scriptsize \flavortext } };
%card content: card effect
%line above text
\draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 3.5) -- (2*\strippadding+\stripwidth+\textpadding, 3.5);
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,3.5) {
\vspace{0.05cm}
{\normalsize \cardcontent }
};
% card-ID
%line above text
\draw[ultra thin, <->] (25*\strippadding+\stripwidth+\textpadding, 0.4) -- (2*\strippadding+\stripwidth+\textpadding, 0.4);
\node[above right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding, 0.05) {
\begin{flushright} {\tiny \cardid } \end{flushright}
};
\end{scope}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% % card back
\draw[lightgray,cardcorners] ( \cardwidth+0.5,0) rectangle (2*\cardwidth, \cardheight);
\draw[lightgray,cardcorners] (2* \cardwidth+0.5,0) rectangle (3*\cardwidth, \cardheight);
\end{tikzpicture}
\\
\begin{tikzpicture}
\begin{scope}
\clip[cardcorners] \shapeCard;
\draw[lightgray,cardcorners] (0,0) rectangle (\cardwidth, \cardheight);
\end{scope}
\draw[lightgray,cardcorners] ( \cardwidth+0.5,0) rectangle (2*\cardwidth, \cardheight);
\draw[lightgray,cardcorners] (2* \cardwidth+0.5,0) rectangle (3*\cardwidth, \cardheight);
\end{tikzpicture}
\\
\begin{tikzpicture}
\draw[lightgray,cardcorners] (0,0) rectangle (\cardwidth, \cardheight);
\draw[lightgray,cardcorners] ( \cardwidth+0.5,0) rectangle (2*\cardwidth, \cardheight);
\draw[lightgray,cardcorners] (2* \cardwidth+0.5,0) rectangle (3*\cardwidth, \cardheight);
\end{tikzpicture}

{}icon. Seeing your desired result would make it easier for me and possibly others to see what you want. :) – Alenanno May 08 '15 at 00:17