set font size and line spacing

The supplied code specifies a 12pt font on a 0pt baseline, the \linespread multiplies the requested baseline spacing by 1.5, but that is still 0pt.

unless you set \lineskiplimit to a negative value TeX does not try to honour a 0pt \baselineskip (which would cause every line of a paragraph to overprint in the same vertical position). It just stacks the lines separated by \lineskip space (1pt by default) so there is no even spacing, lines with capitals or accents take more space than those without.

It is not at all well defined what you mean by "a font size of 12 pt and a line spacing of 1.5 lines" but I would guess that you mean 12bp font on an 1.5*12bp=18bp baseline so perhaps \fontsize{12bp}{18bp}\selectfont is what you are looking for. But it is almost certainly better to not use explicit numbers at all and use the setspace package and one of its preset spacing commands.


Another traditional solution for the purpose:

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage{setspace}
\onehalfspacing
\begin{document}
\lipsum
\end{document}

Useless and counterproductive messing with \fontsize. This simpler MWE work as expected:

\documentclass[12pt]{article}
\usepackage{lipsum}
\linespread{1.5} 
\begin{document}
\lipsum[1]
\end{document}

mwe

There a 12pt font and a 1.5 line spacing. What more?