Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- # f2c-tab.pl
- # Gibt eine Umrechnungstabelle Fahrenheit->Celsius als Text auf der Standard-
- # ausgabe oder als PDF-Dokument aus
- use strict;
- use PDF::API2;
- if (!(($#ARGV == 0 && $ARGV[0] == "--txt") || ($#ARGV == 1 && $ARGV[0] == "--pdf"))) {
- print "perl f2c-tab.pl OPTIONS [FILENAME]\n";
- print " OPTIONS\n";
- print " --txt plain text to stdout\n";
- print " --pdf pdf document to given FILENAME\n";
- exit;
- }
- sub f2c {
- return ($_[0] - 32) * 5 / 9;
- }
- my $out = "";
- for (my $i = 0; $i < 100; $i+=5) {
- my $c = $i; $out.=sprintf " %3d F = %5.1f C ", $c, f2c($c);
- my $c = $i + 100; $out.=sprintf " %3d F = %5.1f C ", $c, f2c($c);
- my $c = $i + 200; $out.=sprintf " %3d F = %5.1f C ", $c, f2c($c);
- my $c = $i + 300; $out.=sprintf " %3d F = %5.1f C ", $c, f2c($c);
- $out.="\n";
- }
- if ($#ARGV == 1 && $ARGV[0] == "--pdf") {
- pdfOutput ($ARGV[1], "Umrechnungstabelle Fahrenheit --> Celsius", $out);
- } else {
- print $out;
- }
- sub pdfOutput { my ($filename, $heading, $text) = @_;
- my $pdf = PDF::API2->new(-file => "$filename");
- $pdf->mediabox(595,842);
- my $page = $pdf->page;
- my $regular = $pdf->corefont('Courier',-encoding => 'latin1');
- my $bold = $pdf->corefont('Arial-Bold',-encoding => 'latin1');
- my $line = $page->gfx;
- $line->strokecolor ("blue");
- $line->move (70,760);
- $line->line (525,760);
- $line->stroke;
- my $txt = $page->text;
- $txt->textstart;
- $txt->font($bold, 20);
- $txt->translate(70,770);
- $txt->text($heading);
- $txt->font($regular, 11);
- my $startPos = 720;
- my @lines = split "\n", $text;
- while($_=shift @lines) {
- $txt->translate(60,$startPos); $startPos-=10;
- $txt->text($_);
- }
- $txt->textend;
- $pdf->save;
- $pdf->end( );
- }
Add Comment
Please, Sign In to add comment