I'm not that familiar with fpc-pdf but...
You might begin with building in some error-checking.
lFC:= gTTFontCache.Find('Helvetica', False, False);
if not Assigned(lFC) then raise EReportFontNotFound.CreateFmt(SErrFontNotFound, ['Helvetica']);
In that case it throws a sane error.
Next... list all fonts to see if your font is there:
for i := 0 to gTTFontCache.Count -1 do
Showmessage(gTTFontCache.Items[i].FamilyName);
If it is not, you can go from there.
Doing a gTTFontCache.ReadStandardFonts; will read in all Windows fonts (assuming you are on Windows).
But Helvetica isn't one of the standard Windows fonts.
You do a Doc.AddFont('Helvetica');. Where is that font located???
Check if Fonts.FindFont('Helvetica'); returns a correct index. (Look at the source for TPDFDocument.AddFont, it does the same).
My guess is that the font is not added correctly.
(if you are under Windows try to use one of the standard fonts first)
BTW, the last line is D.SaveToFile. Where does D come from ???