Format a Drop Capital
C#, 244 bytes

string F(int d,int c,string t){var w=t.Substring(1).Split(' ');t=""+t[0];for(int i=0,x=c,y=0;i&lt;w.Length;x+=w[i++].Length+1)t+=(1&gt;(x=x+w[i].Length&gt;c?0:x)?"\n"+(y++&lt;d?(y&lt;d?"| ":"' ").PadLeft(x=d+1,y&lt;d?'.':'~'):""):" ")+w[i];return t.Remove(1,2);}


Indentation, new lines and comments for clarity:

string F(int d,int c,string t){
    var w=t.Substring(1).Split(' ');
    t=""+t[0];
    for(int i=0,x=c,y=0;i&lt;w.Length;x+=w[i++].Length+1)
        t+=(1&gt;(x=x+w[i].Length&gt;c?0:x)?"\n"+(y++&lt;d?(y&lt;d?"| ":"' ").PadLeft(x=d+1,y&lt;d?'.':'~'):""):" ")+w[i];
    return t.Remove(1,2);
}