\documentclass[a4paper,10pt,landscape]{article}
\usepackage[empty,cm]{fullpage}
\usepackage[latin1]{inputenc}
\usepackage[italian,english]{babel}
\usepackage[OT1]{fontenc}
\usepackage{pgfkeys}
\usepackage{tikz}
\usepackage{ifthen}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.multipart}
%%%% fullpage
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\footskip}{0pt}
\setlength{\textwidth}{\paperwidth}
\setlength{\oddsidemargin}{-2.68cm}
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textheight}{1.1\paperheight}
\setlength{\topmargin}{0pt}
\addtolength{\topmargin}{-2.68cm}
\addtolength{\oddsidemargin}{0.45cm} % per centrare le etichette
\addtolength{\evensidemargin}{0.45cm} % per centrare le etichette
%%%%
\setlength{\parindent}{0pt}
%%%%
\newlength{\etichettawidth}
\setlength{\etichettawidth}{4.8cm}
\newlength{\etichettaheight}
\setlength{\etichettaheight}{7cm}
%%%%
\newlength{\cardtopmargin}
\setlength{\cardtopmargin} {0mm}
\newlength{\cardbottommargin}
\setlength{\cardbottommargin}{0mm}
\newlength{\cardleftmargin}
\setlength{\cardleftmargin} {0mm}
\newlength{\cardrightmargin}
\setlength{\cardrightmargin} {0mm}
\newlength{\cardwidth}
\setlength{\cardwidth}{\etichettawidth}
\addtolength{\cardwidth}{-\cardleftmargin}
\addtolength{\cardwidth}{-\cardrightmargin}
\newlength{\cardheight}
\setlength{\cardheight}{\etichettaheight}
\addtolength{\cardheight}{-\cardtopmargin}
\addtolength{\cardheight}{-\cardbottommargin}
\newlength{\cardtitlewidth}
\setlength{\cardtitlewidth}{\cardwidth}
\pgfmathsetlength{\cardtitlewidth}{min(\etichettawidth-2mm,\cardtitlewidth)}
\newlength{\sidenodeheight}
\setlength{\sidenodeheight}{3mm}
\newlength{\cardtextwidth}
\setlength{\cardtextwidth}{\cardwidth}
\pgfmathaddtolength{\cardtextwidth}{-1.5*\sidenodeheight}
%\fontseries{c}\fontshape{sc}
\tikzstyle{etichetta}=[rectangle,minimum width=\etichettawidth,minimum height=\etichettaheight,outer sep=0,use as bounding box
% ,ultra thin,draw=blue %uncomment to show etichetta boxes!
]
\tikzstyle{carta}=[rectangle,minimum width=\cardwidth,minimum height=\cardheight,outer sep=0
% ,ultra thin,draw=red %uncomment to show carte boxes!
]
\tikzstyle{title label}=[rectangle,text=blue!80!green!75!black,minimum height=2\baselineskip,font={\small},
inner xsep=0pt,inner ysep=1mm,text width=\cardtitlewidth,align=flush center]
\tikzstyle{side label}=[rectangle,text=green!25!black,minimum height=\sidenodeheight,font=\tiny,outer sep=0pt,inner sep=0.5mm,rotate=270]
\tikzstyle{subt label}=[text=magenta!25!black,font=\scriptsize,inner xsep=2pt,inner ysep=0.2em,text width=\cardtextwidth]
\tikzstyle{descr label}=[rectangle,text=red!50!black,font={\sffamily\footnotesize},
inner xsep=2pt,inner ysep=1mm,text width=\cardtextwidth,align=justify]
\tikzstyle{trg label}=[rectangle,text=red!70!blue!90!yellow,font={\sffamily\footnotesize},
inner xsep=2pt,inner ysep=1mm,text width=\cardtextwidth,align=#1]
\tikzstyle{above angles label}=[text=blue!50!black,font=\scriptsize,minimum height=\baselineskip]
\tikzstyle{angles label}=[rectangle split,rectangle split parts=2,rectangle split part align=left,
inner sep=1mm,text=blue!50!black,font=\tiny]
\tikzstyle{prep label}=[rectangle,draw,ultra thin,minimum height=0.05\etichettaheight,text=yellow!10!black,outer sep=0pt,
inner xsep=0pt,inner ysep=0.293em,font={\it\tiny},align=left,text width=0.32\etichettawidth]
%%%%
\pgfkeys{/spells/.is family}
\tikzset{/spells/type/.initial=spell}
\tikzset{/spells/st/.initial=None}
\tikzset{/spells/sr/.initial=No}
\tikzset{/spells/specialcomp/.initial={}}
\tikzset{/spells/note/.initial={}}
\tikzset{/spells/ref/.initial={}}
\tikzset{/spells/tempo/.initial={1 a}}
\tikzset{/spells/tempostr/.initial={}}
\tikzset{/spells/level/.initial={Must be passed in}}
\tikzset{/spells/levelstr/.initial={}}
\tikzset{/spells/name/.initial={Must be passed in}}
\tikzset{/spells/scuola/.initial={Must be passed in}}
\tikzset{/spells/source/.initial={Must be passed in}}
\tikzset{/spells/durata/.initial={Must be passed in}}
\tikzset{/spells/components/.initial={Must be passed in}}
\tikzset{/spells/uses/.initial={Must be passed in}}
\tikzset{/spells/descrizione/.initial={Must be passed in}}
\tikzset{/spells/target/.initial={Must be passed in}}
\tikzset{/spells/range/.initial={Must be passed in}}
\newcommand{\spellcard}[1]{%
%\begin{scope}[every node/.style={draw,ultra thin},/spells/.cd,#1]
\begin{scope}[/spells/.cd,#1]
%
\node[etichetta] (label) {};
%
\node[anchor=north west,carta] (card) at ($(label.north west)+(\cardleftmargin,-\cardtopmargin)$) {};
% titolo
\node [anchor=north,title label] (name) at (card.north)
{\usefont{OT1}{ptm}{bx}{sc}\pgfkeysvalueof{/spells/name}};
%angolo nord est
\node [anchor=north west,side label] (type) at (card.east |- name.south)
{\textsl{\pgfkeysvalueof{/spells/type}}};
%lato sud
\node [anchor=south,prep label] (used) at ($(card.south)-0.5*(\cardleftmargin+\cardrightmargin,0)$)
{\ Used:};
\node [anchor=south,prep label] (prep) at (used.north)
{\ Prep:};
%lato sud ovest
\node [anchor=south west,above angles label] (durata) at (card.west |- prep.north)
{\textsf{Dur: \pgfkeysvalueof{/spells/durata}}};
%lato sud est
\node [anchor=south east,above angles label] (tempo) at (card.east |- prep.north)
{\pgfkeysvalueof{/spells/tempostr}};
\node [anchor=north east,side label] (ref) at ($(tempo.north east) + (0,0.05\cardheight)$)
{\pgfkeysvalueof{/spells/ref}};
%angolo sud ovest
\node [anchor=south west,angles label] (sr) at (card.south west)
{\textsc{SR:}\nodepart{two}\textsc{\pgfkeysvalueof{/spells/sr}}};
%angolo sud est
\node [anchor=south east,angles label] (st) at (card.south east)
{\textsc{ST:}\nodepart{two}\textsc{\pgfkeysvalueof{/spells/st}}};
%sottotitoli
\node [anchor=north east,align=flush right,rectangle,subt label] (source) at (type.south west)
{\emph{\pgfkeysvalueof{/spells/source}}};
\node [anchor=north west,subt label,align=left] (components) at (source.south -| card.west)
{\textsc{\pgfkeysvalueof{/spells/components}}};
\node [anchor=north west,subt label,align=flush right] (specialcomp) at (components.south west)
{\tiny\pgfkeysvalueof{/spells/specialcomp}};
%centro
\node [anchor=west,descr label] (description) at ($0.70*(card.west)+0.3*(card.south west)$)
{\pgfkeysvalueof{/spells/descrizione}};
\node [anchor=north,descr label] (notes) at (description.south)
{\tiny\fontseries{e}\pgfkeysvalueof{/spells/note}};
% sopra il centro
\node [anchor=south west,trg label=flush left] (target) at ($(description.north west) + (0,0.014\cardheight)$)
{{\tiny{}Target/Effect/Area:}\\{\slshape\pgfkeysvalueof{/spells/target}}};
\node [anchor=east,trg label=flush right] (range) at (target.north -| type.south)
{{\tiny{}Range:} \textnormal{\itshape\pgfkeysvalueof{/spells/range}}};
%lato est
\node [anchor=north west,side label] (lvl) at ($0.8*(card.east)+0.2*(card.north east)$)
{\textbf{\pgfkeysvalueof{/spells/levelstr}}};
\end{scope}%
}
\newcommand{\incantesimo}[1]{%
\pgfkeys{/spells/.cd,#1}\spellcard{type=spell,
tempostr={CT: \pgfkeysvalueof{/spells/tempo}},
source={\pgfkeysvalueof{/spells/scuola}},
levelstr={LVL \pgfkeysvalueof{/spells/level}},
}}
\newcommand{\potere}[1]{%
\pgfkeys{/spells/.cd,level={},type=special,#1}\spellcard{
tempostr={AT: \pgfkeysvalueof{/spells/tempo}},
components={\pgfkeysvalueof{/spells/uses}},
levelstr={\ifthenelse{\equal{\pgfkeysvalueof{/spells/level}}{}}{}{EqvLvl~\pgfkeysvalueof{/spells/level}}}
}}