aboutsummaryrefslogtreecommitdiffstats
path: root/print.ps
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2004-04-22 17:03:21 +0000
committerUlf Lamping <ulf.lamping@web.de>2004-04-22 17:03:21 +0000
commit51f987e04f063251198154e2691a99b6281d7c71 (patch)
tree2a5868f2792d840973716841f329adca8e79f3b7 /print.ps
parentf205304ed4b63be05dfd8f8ee1e989e75c773148 (diff)
added some options and enhancements to the print output:
-ps: added formatting hints for ghostscript, so pdf conversion will be much better -ps: print a thin line at the top and bottom of each page -ps/text: add an option to start a new page for every packet (formfeed) svn path=/trunk/; revision=10660
Diffstat (limited to 'print.ps')
-rw-r--r--print.ps116
1 files changed, 107 insertions, 9 deletions
diff --git a/print.ps b/print.ps
index b47eb64b39..49151e3dcc 100644
--- a/print.ps
+++ b/print.ps
@@ -17,6 +17,30 @@
%%EndComments
%!
+%
+% Ghostscript http://ghostscript.com/ can convert postscript to pdf files.
+%
+% To convert this postscript file to pdf, type (for US letter format):
+% ps2pdf filename.ps
+%
+% or (for A4 format):
+% ps2pdf -sPAPERSIZE=a4 filename.ps
+%
+% ... and of course replace filename.ps by your current filename.
+%
+% The pdfmark's below will help converting to a pdf file, and have no
+% effect when printing the postscript directly.
+%
+
+% This line is necessary if the file should be printable, and not just used
+% for distilling into PDF:
+%
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+%
+% This tells PDF viewers to display bookmarks when the document is opened:
+%
+[/PageMode /UseOutlines /DOCVIEW pdfmark
+
% Get the Imagable Area of the page
clippath pathbbox
@@ -33,10 +57,10 @@ pop pop % junk
%/pagenumtab hmax 72 sub def
% 1/2-inch margins
-/lmargin 36 def
-/tmargin vmax 56 sub def
-/bmargin 36 def
-/pagenumtab hmax 36 sub def
+/lmargin 36 def % left margin
+/tmargin vmax 56 sub def % top margin
+/bmargin 36 def % bottom margin
+/pagenumtab hmax 36 sub def % right margin
% Counters
/vpos vmax 40 sub def
@@ -46,6 +70,17 @@ pop pop % junk
/pagenostr 7 string def
+/formfeed {
+ printpagedecorations
+ showpage
+
+ % we need a new current point after showpage is done
+ lmargin % X
+ vpos % Y
+ moveto
+ /vpos tmargin def
+} def
+
% Prints text with possible indenting
/putline_single {
exch 10 mul lmargin add % X
@@ -57,9 +92,7 @@ pop pop % junk
vpos bmargin le % is vpos <= bottom margin?
{
- printpageheader
- showpage
- /vpos tmargin def
+ formfeed
}
if % then formfeed and start at top
} def
@@ -89,7 +122,7 @@ pop pop % junk
% Prints the page number at the top right
-/printpageheader {
+/printpagedecorations {
gsave
% Set the font to 8 point
/Helvetica findfont 8 scalefont setfont
@@ -109,6 +142,28 @@ pop pop % junk
% thispagenum++
/thispagenum thispagenum 1 add def
+
+ % line at top of page
+ lmargin % X
+ vmax 38 sub % Y
+ moveto
+
+ pagenumtab % X
+ vmax 38 sub % Y
+ lineto
+ stroke
+
+ % line at bottom of page
+ lmargin % X
+ bmargin % Y
+ moveto
+
+ % title
+ pagenumtab % X
+ bmargin % Y
+ lineto
+ stroke
+
grestore
} def
@@ -124,6 +179,48 @@ pop pop % junk
/eth_pagetitle (Ethereal) def
% Display our output lines.
+
+% PDF bookmark link
+[/Dest /__frame1__ /Title (Frame 1) /OUT pdfmark
+[/View [/XYZ -4 currentpoint matrix currentmatrix matrix defaultmatrix
+ matrix invertmatrix matrix concatmatrix transform exch pop 20 add null]
+ /Dest /__frame1__ /DEST pdfmark
+
+% packet data
+0 (Frame 1) putline
+0 (Ethernet II \(98 on wire, 68 captured\)) putline
+1 (Destination: 00:00:0c:36:00:2a) putline
+1 (Source: 00:c0:4f:c7:eb:c0) putline
+1 (Type: IP \(0x0800\)) putline
+0 (Ethernet II \(98 on wire, 68 captured\)) putline
+1 (Source: 00:c0:4f:c7:eb:c0) putline
+1 (Type: IP \(0x0800\)) putline
+0 (Source: 00:c0:4f:c7:eb:c0) putline
+
+0 () putline
+0 (0000 cc 00 00 00 00 00 07 02 00 00 00 00 00 00 00 00 ................ ) putline
+0 (0010 00 00 bd 0e fe 16 01 00 3e 00 03 08 58 4c 20 38 ........>...XL 8 ) putline
+0 (0020 30 20 49 4d 33 00 16 01 00 34 00 16 01 01 35 00 0 IM3....4....5. ) putline
+0 (0030 16 01 02 36 00 16 01 03 6e 00 16 01 ff 6f 00 16 ...6....n....o.. ) putline
+0 (0040 01 ff 70 00 16 01 ff 71 00 16 01 ff 48 00 01 04 ..p....q....H... ) putline
+0 (0050 ff 03 07 00 24 00 01 01 05 25 00 01 01 05 26 00 ....$....%....&. ) putline
+0 (0060 01 01 05 27 00 01 01 05 6a 00 01 01 00 6b 00 01 ...'....j....k.. ) putline
+0 (0070 01 00 6c 00 01 01 00 6d 00 01 01 00 3d 00 01 02 ..l....m....=... ) putline
+0 (0080 02 00 c0 00 03 08 80 00 00 00 00 00 00 00 b4 00 ................ ) putline
+0 (0090 01 04 c0 a8 42 ef 39 00 16 08 05 05 05 05 00 00 ....B.9......... ) putline
+0 (00a0 00 00 00 03 20 36 41 20 52 69 6e 67 00 00 00 00 .... 6A Ring.... ) putline
+0 (00b0 00 00 00 00 00 00 ...... ) putline
+formfeed
+
+
+% PDF bookmark link
+[/Dest /__frame2__ /Title (Frame 2) /OUT pdfmark
+[/View [/XYZ -4 currentpoint matrix currentmatrix matrix defaultmatrix
+ matrix invertmatrix matrix concatmatrix transform exch pop 20 add null]
+ /Dest /__frame2__ /DEST pdfmark
+
+% packet data
+0 (Frame 2) putline
0 (Ethernet II \(98 on wire, 68 captured\)) putline
1 (Destination: 00:00:0c:36:00:2a) putline
1 (Source: 00:c0:4f:c7:eb:c0) putline
@@ -148,10 +245,11 @@ pop pop % junk
0 (00b0 00 00 00 00 00 00 ...... ) putline
% ---- ethereal finale start ---- %
+
% If this is not the first page, then print the page number
thispagenum 1 gt % is thispagenum > 1 ?
{
- printpageheader
+ printpagedecorations
}
if