: # Use perl eval 'exec perl -S $0 "$@"' if $running_under_some_shell; # This is html2ps 0.1 beta, an HTML-to-PostScript converter. # Author: Jan Kärrman, Dept. of Scientific Computing, Uppsala University, # Sweden, e-mail: jan@tdb.uu.se. # # The part of this Perl script that does the actual conversion into PostScript # is converted from a sed script with s2p. It probably can be improved, but I # have yet to learn Perl properly. $usage=<$opt_o") || die "Error opening $opt_o for output\n"} print <) D} D /SK {PF {(<) join WR} {BT /IG true D /DE (>) D} ifelse} D /SS {SZ SL get /SL SL 1 add D} D /I {WB SS 4 FS} D /BD {WB SS 2 FS} D /TT {WB SS 1 FS} D /KB {WB SS /CF 0 D 3 FS} D /CT {WB SS /CF 0 D 4 FS} D /SM {WB SS /CF 0 D 1 FS} D /ES {WB /SL SL 1 sub NN D /CF 0 D SZ SL get FR SL get FS} D /UN {WB /UF true D} D /NU {WB /UF false D} D /F $opt_s D /BH -35 D /AH -28 D /LL W D /XO 0 D /YI 0 D /CI 0 D /LG 0 D /AI 0 D /UI 0 D /IN 30 D /BI 12 D /WW 50 D /PS $opt_p D /AR [0 0 0 0 0 0 0 0 0 0] D /NR [0 0 0 0 0 0 0 0 0 0] D /FR [0 0 0 0 0 0 0 0 0 0] D /SZ [0 0 0 0 0 0 0 0 0 0] D /HS [$h1 $h2 $h3 $h4 $h5 $h6] D /HT [$t1 $t2 $t3 $t4 $t5 $t6] D /SL 0 D /CF 0 D /BC 0 D /MK $mask D /PN 0 D /MS ( ) D /CH 1 string D /ST 6 string D /IG false D /HM false D /PF false D /EN false D /UF false D /PP false D /AE false D /AF false D /NO $number D /AU $ulanch D /BP true D %%EndProlog save RF 11 SF 0 LE neg 20 sub M ( EOT undef $/; while (<>) { s|\r||g; s|\\|\\\\|g; s|\(|\\(|g; s|\)|\\)|g; # Yes, I know Perl has case-insensitive pattern matching. But on my system # it takes about 10 times longer to run! if(/<[pP][lL][aA][iI][nN][tT][eE][xX][tT] *>/) {$_=$`;$pt=$'}; while($_){ if(/(<[lL][iI][sS][tT][iI][nN][gG] *>)/) {$_=$`; $tag=$1; $rest=$'; if(/<[xX][mM][pP] *>/) {$_=$`; &Subst; print ")PR("; $_=$'.$tag.$rest; if(m||) {print "$`)RP("; $_=$'} else {print $'; $_=""}} else {&Subst; print ")PR("; $_=$rest; if(m||) {print "$`)RP("; $_=$'} else {print $'; $_=""}}} elsif(/<[xX][mM][pP] *>/) {$_=$`; &Subst; print ")PR("; $_=$'; if(m||) {print "$`)RP("; $_=$'} else {print $'; $_=""}} else {&Subst;$_=""} } } if($pt) {print ")PR($pt"}; print ")WB showpage restore\n"; sub Subst{ s|<[hH][tT][mM][lL] *>||g; s|||g; s|<[hH][eE][aA][dD] *>|)HD(|g; s||)DH(|g; s|<[bB][oO][dD][yY] *>||g; s|||g; s|<[tT][iI][tT][lL][eE] *>|)TL(|g; s||)LT(|g; s|<[hH]([1-6]{1}) *[^>]*>|)$1 H(|g; s||)EH(|g; s|<[bB][rR] *>|)BR(|g; s|<[pP]>|)P(|g; s|<[pP] +[^>]*>|)P(|g; s||)P(|g; s|<[hH][rR] *>|)HR(|g; s|<[aA][dD][dD][rR][eE][sS][sS] *>|)AD(|g; s||)DA(|g; s|<[pP][rR][eE] *>|)PR(|g; s|<[pP][rR][eE] *[wW][iI][dD][tT][hH] *= *['"]* *(\d+) *['"]* *>|)$1 PW(|g; s||)RP(|g; s|<[dD][tT] *>|)DT(|g; s|<[dD][dD] *>|)DD(|g; s|<[dD][lL] *>|)DL(|g; s|<[dD][lL] *[cC][oO][mM][pP][aA][cC][tT] *>|)DL(|g; s||)LD(|g; s|<[uU][lL] *>|)UL(|g; s|<[uU][lL] *[cC][oO][mM][pP][aA][cC][tT] *>|)UL(|g; s||)LU(|g; s|<[mM][eE][nN][uU] *>|)UL(|g; s||)LU(|g; s|<[dD][iI][rR] *>|)UL(|g; s||)LU(|g; s|<[oO][lL] *[^>]*>|)OL(|g; s||)LO(|g; s|<[lL][iI] *>|)LI(|g; s|||g; s|<[bB][lL][oO][cC][kK][qQ][uU][oO][tT][eE] *>|)BQ(|g; s||)QB(|g; s|<[sS][tT][rR][oO][nN][gG] *>|)BD(|g; s||)ES(|g; s|<[sS][aA][mM][pP] *>|)SM(|g; s||)ES(|g; s|<[cC][iI][tT][eE] *>|)CT(|g; s||)ES(|g; s|<[vV][aA][rR] *>|)I(|g; s||)ES(|g; s|<[bB] *>|)BD(|g; s||)ES(|g; s|<[iI] *>|)I(|g; s||)ES(|g; s|<[tT][tT] *>|)TT(|g; s||)ES(|g; s|<[uU] *>|)UN(|g; s||)NU(|g; s|<[dD][fF][nN] *>|)I(|g; s||)ES(|g; s|<[eE][mM] *>|)I(|g; s||)ES(|g; s|<[cC][oO][dD][eE] *>|)SM(|g; s||)ES(|g; s|<[kK][bB][dD] *>|)KB(|g; s||)ES(|g; s|<[aA][ \n]+[^>]*[hH][rR][eE][fF][^>]*>|)A(|g; s|<[aA][^>]*>||g; # Anchors away! |-) s||)EA(|g; s/<[iI][mM][gG] +[^>]*[aA][lL][tT] *= *"([^".]*)"[^>]*>/ $1 )WB(/g; s/<[iI][mM][gG] +[^>]*[aA][lL][tT] *= *([\w\.-]+)[^>]*>/ $1 )WB(/g; s/<[iI][mM][gG][^>]*>/ $opt_im )WB(/g; s||)WB NP(|g; s|