Skip to content

Instantly share code, notes, and snippets.

@ymkjp
Forked from stanaka/generate_pdf.pl
Created October 24, 2012 12:54
Show Gist options
  • Select an option

  • Save ymkjp/3945893 to your computer and use it in GitHub Desktop.

Select an option

Save ymkjp/3945893 to your computer and use it in GitHub Desktop.

Revisions

  1. @stanaka stanaka created this gist Oct 15, 2012.
    56 changes: 56 additions & 0 deletions generate_pdf.pl
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    #!/usr/bin/env perl
    use strict;
    use warnings;

    use GD;

    sub draw_page {
    my ($width, $height) = @_;
    return unless $width && $height;

    my $im = new GD::Image($width, $height);
    my $white = $im->colorAllocate(255,255,255);
    my $black = $im->colorAllocate(0,0,0);
    my $red = $im->colorAllocate(255,0,0);
    my $blue = $im->colorAllocate(0,0,255);

    $im->filledRectangle(0, 0, $width-1, $height-1, $white);

    for(my $y = 0; $y < $height; $y += 2){
    $im->line(0,$y,$width-1,$y,$black);
    }

    for(my $x = 0; $x < $width; $x += 2){
    $im->line($x, 0, $x, $height-1, $black);
    }

    my $font_file = "/Library/Fonts/Osaka.ttf";
    my ($pos_x, $pos_y) = (100, 100);
    my $size = 50;
    $im->filledRectangle($pos_x, $pos_y - $size * 1.1, $pos_x + $size * 7, $pos_y + $size * 0.1, $white);
    $im->stringFT($black,
    $font_file, $size,
    0,
    $pos_x, $pos_y,
    "$width x $height");

    open my $out, ">", "output-$width-$height.png";
    binmode $out;
    print $out $im->png;
    close $out;

    system("sam2p", "-j:quiet", "output-$width-$height.png", "output-$width-$height.pdf");
    return "output-$width-$height.pdf";
    }

    my @pdfs;
    for(my $y = 890; $y < 920; $y++){
    push @pdfs, draw_page(560, $y);
    };
    for(my $x = 645; $x < 675; $x++){
    push @pdfs, draw_page($x, 880);
    };
    push @pdfs, draw_page(659, 905);
    push @pdfs, draw_page(658, 906);
    push @pdfs, draw_page(658, 905);
    system("pdftk", @pdfs, "cat", "output", "output.pdf");