Thread PDF erstellen und speichern für späteren Ausdruck (4 answers)
Opened by Ichhalt at 2016-10-10 16:32

Linuxer
 2016-10-10 21:11
#185478 #185478
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Hi,

habe mal ein wenig rumgespielt und gesucht.

1. Wenn Du unter Windows arbeitest, darf die PDF-Datei nicht im Betrachter geöffnet sein, wenn die Datei neu geschrieben werden soll. Wenn sie noch geöffnet ist, wird der schreibende Zugriff blockiert und es kommt die von Dir genannte Fehlermeldung (jedenfalls bei mir).

2. Wenn Du eine der string*()-Methoden verwendest, musst Du wohl den gewünschten Font und die Position des Textes angeben. Das kannst Du teilweise ersparen, indem Du die Methode printnl() verwendest. Die erwartet als Minimum nur den Text und den Font.

Ich habe mir mal ein Bastelskript erstellt, welches mir erfolgreich ein PDF erzeugen kann.

more (9.1kb):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#! /usr/bin/perl
use strict;
use warnings;

use 5.010;
use PDF::Create;

# some data to print
my @liste = ( '00' .. '99' );


my $workdir = "C:/temp";
my $filename = "liste.pdf";


chdir $workdir  or die "chdir($workdir) failed: $!";


my $pdf = PDF::Create->new(
        'filename'      => $filename,
        'Author'        => 'linuxer',
        'Title'         => 'liste',
        'CreationDate'  => [ localtime ],
);

my $font = $pdf->font(
        'BaseFont'      => 'Helvetica',
);


my $root = $pdf->new_page( 
        'MediaBox'      => $pdf->get_page_size('A4'),
);


my $page = $root->new_page();

my $i=0;
for my $row ( @liste ) {
        
        # new page after X (here 63) lines; depends on used font size
        # may be it's possible to calculate number of rows, depending on page size and font size
        if ( 63 < $i++ ) {
                $page = $root->new_page();
                $i    = 0;
        }

        $page->printnl( $row, $font );
}

$pdf->close;



edit: kleinere Text- und Code-Kommentar-Anpassung
Last edited: 2016-10-10 21:52:57 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread PDF erstellen und speichern für späteren Ausdruck