\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{ven. sept. 16 11:02:05 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={mime.types},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de description de type mime pour cups},
CreationDate={D:20160916110205},
ModDate={D:20160916110205},
Keywords={cups;printer}
}}
\begin{document}
 
\begin{center}
{\Huge mime.types }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de description de type mime pour cups}
 
\vspace{10mm}
 
\hspace{1mm} Le fichier mime.types définis les types de fichiers reconnus. Des types de fichiers additionnels sont spécifiés dans les fichiers avec l'extension .types dans le répertoire de configuration cups. Chaque ligne commence avec le type mime et optionellement suivi pasr une série de règles de reconnaissance de fichier: \\
\hspace{1mm} \textbf{mime/type [ rule ... rule ]} \\
 
\hspace{1mm}  Les types sont sensibles à la casse et sont stockés dans l'ordre alphanumérique ascendant.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les règles peuvent être groupées en utilisant des parenthèses, jointes avec un '+' pour un ET logique, joint en utilisant ',' ou un espace blanc pour un OU logique, et inversé avec un '!'
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Règles }
 
\
 
\hspace{1mm}  Les règles prennent 2 formes, une extension de fichier, et les fonction avec des valeurs de tests entre parenthèses
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} match("pattern")]{Vrai si le nom de fichier correspond au motif donné}
\item[\hspace{1mm} ascii(offset,length)]{Vrai si length octets commençant à l'offset sont des ASCII valides (CR, NL, TAB, BS, 32-126)}
\item[\hspace{1mm} printable(offset,length)]{Vrai si length octets commençant à l'offset sont des caractères 8-bits ASCII valides (CR, NL, TAB, BS, 32-126, 128-254)}
\item[\hspace{1mm} priority(number)]{Spécifie la priorité relative du type mime. Défaut: 100.}
\item[\hspace{1mm} string(offset,"string")]{Vrai si les octets à l'offset correspondent à la chaîne}
\item[\hspace{1mm} istring(offset,"string")]{Vrai si les octets à l'offset correspondent à la chaîne (insensible à la casse)}
\item[\hspace{1mm} char(offset,value)]{Vrai si l'octet à l'offset est identique à la valeur}
\item[\hspace{1mm} short(offset,value)]{Vrai si l'entier 16-bits big-endian à l'offset est identique à la valeur}
\item[\hspace{1mm} int(offset,value)]{Vrai si l'entier 32-bits big-endian à l'offset est identique à la valeur}
\item[\hspace{1mm} locale("string")]{Vrai si la locale courante correspond à la chaîne}
\item[\hspace{1mm} contains(offset,range,"string")]{Vrai si les octets à l'offset pour la plage d'octet contient la chaîne}
\end{description}
 
\vspace{1cm}{\huge Constantes chaînes }
 
\
 
\hspace{1mm}  Les constantes chaînes peuvent être spécifiées dans des guillemets double pour les chaînes contenant des espaces blanc et des <> pour les chaînes hexadécimales.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Correspondance et priorité }
 
\
 
\hspace{1mm}  Quand CUPS doit déterminer le type mime d'un fichier, il vérifie tous les types mimes définis dans les fichiers .types. Quand 2 ou plusieurs types correspondent au fichier, le type choisis dépend du nom du type et de la priorité. Si les types ont la même priorité, les noms sont stockés alphanumériquement dans l'ordre ascendant et le premier type est choisis.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Définir 2 types mimes pour des données raster, dont un est un sous-jeu avec une priorité supérieur
 
{\ttfamily
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR") \textbackslash{}\\ \hspace{2mm}string(0,"RaS2") string(0,"2SaR") \textbackslash{}\\ \hspace{2mm}string(0,"RaS3") string(0,"3SaR")\\ \hspace{2mm}\\ image/pwg-raster string(0,"RaS2") + \textbackslash{}\\ \hspace{2mm}string(4,PwgRaster<00>) priority(150)\\
}
\vspace{8mm}
\end{flushleft}
\end{document}
