It's great that you are using Perl to improve the everyday experience of others. Still, it's hard to provide some specific suggestions for your script - as you stated, it contains a lot. A concise example is usually much better. I'll try to provide as much help as I can.

The easiest question to answer would be Q3 - try looking at Calendar::Simple. The documentation contains a great complete example here.

When it comes to Q2 - HTML is not great when you want to produce documents suitable for printing. If your goal is to create a nice looking document that you can print and carry around with you - try creating a PDF file. It's a bit more complicated, but the documentation for the PDF::API2::Simple provides all you need for a simple list with a header and an image. Russian captions should not pose a problem.

As to Q1 - it might be a problem on your side - the page does not appear to be loading in my browsers.

I wish you good luck with your Perl project, and I'll try to update my response with an example using both modules I have suggested.


UPDATE:

So, here's the promised update. There is no calendar, and no image, but this should already be enough for you to start. As you will notice, I've changed my initial recommendation - although I have used PDF::API2::Simple for simple tasks before, there were problems with printing utf8 characters, and I had to use the underlying PDF::API2 object. So I switched to PDF::API2 entirely. There is a tutorial in Russian, too, but my limited knowledge of this language does not allow me to check if it's up to date. Seems good.

Again, best luck with your efforts.

#!/usr/bin/perl use v5.14; use utf8; use PDF::API2; my $header = 'placeholder header'; my $pdf = PDF::API2->new( width => 595, # A4 dimensions in point height => 842, # 1 point = 1/72 inch ); sub drawline { my ($line, $y) = @_; my $x1 = 50; my $x2 = 550; $line->linewidth(3); $line->move( $x1, $y ); $line->line( $x2, $y ); $line->stroke; } my $page = $pdf->page; my $txt = $page->text; my $font = $pdf->ttfont('DejaVuSans.ttf'); $txt->font($font, 32); $txt->translate(100, 650); $txt->text($header, -encoding => 'utf8'); my @task = ( 'wash the dishes', 'buy some meat', 'run a mile', 'buy more meat', 'plan a barbecue', ); my $line = $page->gfx; $txt->font($font, 20); my $vspace = 70; for my $i (0..$#task) { my $linepos = 500-($i*$vspace); my $msg = '[ ] '.$task[$i]; drawline ($line, $linepos); $txt->translate(70, $linepos+10); $txt->text($msg); } $pdf->saveas("output.pdf");

You can replace the placeholder header with the string I used to test the script: my $header = 'мой маленький список';. I could not figure out a way to include unicode in the code example.

- Luke


In reply to Re: using perl to print out tomorrow's list by blindluke
in thread using perl to print out tomorrow's list by Aldebaran

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.