모듈의 POD가 손상되었을 수 있습니다. 소스를 확인하십시오. 그러면, 예를 들어.
use strict;
use warnings;
use PDF::API2;
my $pdf = PDF::API2->new();
my $page = $pdf->page();
$page->mediabox('A4');
my $content = $page->text();
$content->translate(50, 750);
$content->font($pdf->corefont('Helvetica'), 24);
$content->lead(30);
$content->section("What is the proper symbol for a newline in the PDF?\nIs there a method to increase/decrease line spacing?\n" x 5, 400, 500);
$pdf->saveas('test.pdf');
이 예제는 긴 줄 자동 줄 바꿈, 줄 바꿈 처리 및 줄 바꿈 (줄 간격) 설정을 보여줍니다.
의견을 요청하는대로 업데이트 :). Borodin이 제안한대로 그것을 할 수 있습니다. '표준'textlabel
을 개행 문자로 분리하고 수동으로 텍스트 위치를 업데이트하는 것은 어렵지 않습니다. 하지만, TMTOWTDI, 그리고 당신은 아래의 내 빠른 (그리고 더러운) 솔루션을 사용할 수 있습니다 - section
는 '무한'텍스트 상자로 방지 자동 줄 바꿈을 처리하는 데 사용됩니다. 내 sub
호출 의미는 textlabel
과 비슷합니다. 또는 색상, 정렬 등의 지원을 추가하고 클래스에서 적절한 방법으로 만들 수 있습니다.
use strict;
use warnings;
use PDF::API2;
my $s = <<'END';
What is the proper symbol for a newline in the PDF?
Is there a method to increase/decrease line spacing?
END
sub super_textlabel {
my ($page, $x, $y, $font, $size, $text, $rotate, $lead) = @_;
my $BIG = 1_000_000;
$page->gfx()->save();
my $txt = $page->text();
$txt->font($font, $size);
$txt->lead($lead);
$txt->transform(-translate => [$x, $y], -rotate => $rotate);
$txt->section($text, $BIG, $BIG);
$page->gfx()->restore();
}
my $pdf = PDF::API2->new();
my $page = $pdf->page();
$page->mediabox('A4');
super_textlabel($page, 50, 750, $pdf->corefont('Helvetica'), 12, $s, 0, 16);
super_textlabel($page, 200, 200, $pdf->corefont('Times'), 16, $s, 45, 24);
super_textlabel($page, 500, 400, $pdf->corefont('Courier'), 10, $s, 90, 50);
$pdf->saveas('test.pdf');
힌트를 보내 주셔서 감사합니다. 원본에는 실제로 더 많은 정보가 포함되어 있습니다. 당신의 예제는 잘 작동하지만'-rotate'와 같은 옵션이 필요하고 자동 줄 바꿈을 허용하지 않기 때문에'section' 메소드의 기능을'textlabel'에 적용하는 방법을 찾아야합니다. – Martin
당신은 내 하루를 보냈습니다, 정말 고마워요! – Martin