nexmon – Rev 1

Subversion Repositories:
Rev:
/* DO NOT EDIT
 *
 * Created by rdps.py.
 *
 * ps.c
 * Definitions for generating PostScript(R) packet output.
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1998 Gerald Combs
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

#include <stdio.h>

#include "ps.h"

void print_ps_preamble(FILE *fd) {
        fprintf(fd, "%%!\n");
        fprintf(fd, "%%!PS-Adobe-2.0\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% Wireshark - Network traffic analyzer\n");
        fprintf(fd, "%% By Gerald Combs <gerald@wireshark.org>\n");
        fprintf(fd, "%% Copyright 1998 Gerald Combs\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%%%%Creator: Wireshark\n");
        fprintf(fd, "%%%%Title: Wireshark output\n");
        fprintf(fd, "%%%%DocumentFonts: Helvetica Monaco\n");
        fprintf(fd, "%%%%EndComments\n");
        fprintf(fd, "%%!\n");
        fprintf(fd, "\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% Ghostscript http://ghostscript.com/ can convert postscript to pdf files.\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% To convert this postscript file to pdf, type (for US letter format):\n");
        fprintf(fd, "%% ps2pdf filename.ps\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% or (for A4 format):\n");
        fprintf(fd, "%% ps2pdf -sPAPERSIZE=a4 filename.ps\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% ... and of course replace filename.ps by your current filename.\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%% The pdfmark's below will help converting to a pdf file, and have no\n");
        fprintf(fd, "%% effect when printing the postscript directly.\n");
        fprintf(fd, "%% \n");
        fprintf(fd, "\n");
        fprintf(fd, "%%   This line is necessary if the file should be printable, and not just used\n");
        fprintf(fd, "%%   for distilling into PDF:\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "%%   This tells PDF viewers to display bookmarks when the document is opened:\n");
        fprintf(fd, "%%\n");
        fprintf(fd, "[/PageMode /UseOutlines /DOCVIEW pdfmark\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Get the Imagable Area of the page\n");
        fprintf(fd, "clippath pathbbox\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Set vmax to the vertical size of the page,\n");
        fprintf(fd, "%% hmax to the horizontal size of the page.\n");
        fprintf(fd, "/vmax exch def\n");
        fprintf(fd, "/hmax exch def\n");
        fprintf(fd, "pop pop            %% junk\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% 1/2-inch margins\n");
        fprintf(fd, "/lmargin 36 def                                    %% left margin\n");
        fprintf(fd, "/tmargin vmax 56 sub def           %% top margin\n");
        fprintf(fd, "/bmargin 36 def                                    %% bottom margin\n");
        fprintf(fd, "/pagenumtab hmax 36 sub def                %% right margin\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Counters\n");
        fprintf(fd, "/thispagenum 1 def\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Strings\n");
        fprintf(fd, "/pagenostr 7 string def\n");
        fprintf(fd, "\n");
        fprintf(fd, "\n");
        fprintf(fd, "/formfeed {\n");
        fprintf(fd, "   printpagedecorations\n");
        fprintf(fd, "   showpage\n");
        fprintf(fd, "   \n");
        fprintf(fd, "   %% we need a new current point after showpage is done\n");
        fprintf(fd, "   lmargin         %% X\n");
        fprintf(fd, "   vpos            %% Y\n");
        fprintf(fd, "   moveto\n");
        fprintf(fd, "   /vpos tmargin def\n");
        fprintf(fd, "} def\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Prints text with possible indenting\n");
        fprintf(fd, "/putline_single {\n");
        fprintf(fd, "   exch 10 mul lmargin add         %% X\n");
        fprintf(fd, "   vpos                                            %% Y\n");
        fprintf(fd, "   moveto\n");
        fprintf(fd, "   show\n");
        fprintf(fd, "\n");
        fprintf(fd, "   /vpos vpos 10 sub def\n");
        fprintf(fd, "\n");
        fprintf(fd, "   vpos 5 sub bmargin le           %% is vpos <= bottom margin?\n");
        fprintf(fd, "   {\n");
        fprintf(fd, "           formfeed\n");
        fprintf(fd, "   }\n");
        fprintf(fd, "   if                                                      %% then formfeed and start at top\n");
        fprintf(fd, "} def\n");
        fprintf(fd, "\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Prints text with possible indenting and line wrap\n");
        fprintf(fd, "/putline {\n");
        fprintf(fd, "   /text exch def\n");
        fprintf(fd, "   /indent exch def\n");
        fprintf(fd, "   \n");
        fprintf(fd, "   %% wrapat = width / sizeof font (remember: monospaced font)\n");
        fprintf(fd, "   /pagewidth pagenumtab lmargin sub def\n");
        fprintf(fd, "   /cwidth (A) stringwidth pop def\n");
        fprintf(fd, "   /wrapat pagewidth cwidth div cvi def\n");
        fprintf(fd, "           \n");
        fprintf(fd, "   text length wrapat le {\n");
        fprintf(fd, "           %% print line\n");
        fprintf(fd, "           indent text 0 text length getinterval putline_single\n");
        fprintf(fd, "   }{\n");
        fprintf(fd, "           %% print the lines first part\n");
        fprintf(fd, "           indent text 0 wrapat getinterval putline_single\n");
        fprintf(fd, "           %% print wrapped rest\n");
        fprintf(fd, "           indent text wrapat text length wrapat sub getinterval putline\n");
        fprintf(fd, "   }\n");
        fprintf(fd, "   ifelse\n");
        fprintf(fd, "} def\n");
        fprintf(fd, "\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Prints the page number at the top right\n");
        fprintf(fd, "/printpagedecorations {\n");
        fprintf(fd, "   gsave\n");
        fprintf(fd, "           %% Set the font to 8 point\n");
        fprintf(fd, "           /Helvetica findfont 8 scalefont setfont\n");
        fprintf(fd, "\n");
        fprintf(fd, "           %% title\n");
        fprintf(fd, "           lmargin                                         %% X\n");
        fprintf(fd, "           vmax 36 sub                                     %% Y\n");
        fprintf(fd, "           moveto\n");
        fprintf(fd, "           ws_pagetitle show\n");
        fprintf(fd, "\n");
        fprintf(fd, "           %% this page number\n");
        fprintf(fd, "           pagenumtab (Page ) stringwidth pop sub thispagenum pagenostr cvs stringwidth pop sub            %% X\n");
        fprintf(fd, "           vmax 36 sub                                     %% Y\n");
        fprintf(fd, "           moveto\n");
        fprintf(fd, "           (Page ) show\n");
        fprintf(fd, "           thispagenum pagenostr cvs show\n");
        fprintf(fd, "\n");
        fprintf(fd, "           %% thispagenum++\n");
        fprintf(fd, "           /thispagenum thispagenum 1 add def\n");
        fprintf(fd, "           \n");
        fprintf(fd, "           %% line at top of page\n");
        fprintf(fd, "           lmargin                                         %% X\n");
        fprintf(fd, "           vmax 38 sub                                     %% Y\n");
        fprintf(fd, "           moveto\n");
        fprintf(fd, "           \n");
        fprintf(fd, "           pagenumtab                                      %% X\n");
        fprintf(fd, "           vmax 38 sub                                     %% Y\n");
        fprintf(fd, "           lineto\n");
        fprintf(fd, "           stroke\n");
        fprintf(fd, "           \n");
        fprintf(fd, "           %% line at bottom of page\n");
        fprintf(fd, "           lmargin                                         %% X\n");
        fprintf(fd, "           bmargin                                         %% Y\n");
        fprintf(fd, "           moveto\n");
        fprintf(fd, "           \n");
        fprintf(fd, "           pagenumtab                                      %% X\n");
        fprintf(fd, "           bmargin                                         %% Y\n");
        fprintf(fd, "           lineto\n");
        fprintf(fd, "           stroke\n");
        fprintf(fd, "           \n");
        fprintf(fd, "   grestore\n");
        fprintf(fd, "} def\n");
        fprintf(fd, "   \n");
        fprintf(fd, "%% Reset the vertical position\n");
        fprintf(fd, "/vpos tmargin def\n");
        fprintf(fd, "\n");
        fprintf(fd, "%% Set the font to 8 point\n");
        fprintf(fd, "/Monaco findfont 8 scalefont setfont\n");
        fprintf(fd, "\n");
}


void print_ps_finale(FILE *fd) {
        fprintf(fd, "\n");
        fprintf(fd, "printpagedecorations\n");
        fprintf(fd, "showpage\n");
        fprintf(fd, "\n");
        fprintf(fd, "%%%%EOF\n");
        fprintf(fd, "\n");
}