2015-02-03 1 views
0

wkhtmltopdf-amd64를 사용하여 pdf를 작성하고 있습니다. 나는이 perl file.Pdf에 javascript의 테이블에있는 문자열을 보내고 있지만 올바르게 생성되었지만 문제는 두 번째 페이지와 다른 페이지에서도 표 머리글을 원합니다. 여기 내 펄 program.Please 도움이 ....pdf의 모든 페이지에있는 표 머리글은 wkhtmltopdf에 의해 작성됩니다.

#!/usr/bin/perl 
use CGI; 
use CGI qw/param/; 
use URI::Escape; 
use strict; 
use Data::Dumper; 
use User; 
use ADMIN; 
use WORKFLOW; 
use Time::Piece; 
use User; 
use HTML::Entities; 
use lib "../utils"; 

use lib "../cgi"; 
use CGI::Carp qw(fatalsToBrowser); 
use Date::Calc qw(:all); 
use POSIX 'strftime'; 
use POSIX; 
use configured_mail; 
use PSESSION; 
use 5.010; 
use Time::Piece; 
use URI::Escape; 
use MIME::Base64; 


my $userobj = User -> new(); 
my $BASEPATH = $userobj ->getAppBasePath(); 
my $URLBASEPATH = $userobj->getAppBaseUrl(); 
# my $admin_obj = ADMIN->new($proj,$username); 
#my $proj; 
#my $username; 

my $query = CGI->new(); 
my $CGISESSID = $query->param('CGISESSID'); 

my $ps = PSESSION->new(); 
my $ps_outref = $ps->getSessionData("$CGISESSID"); 
my $proj = $ps_outref->{'proj'}; 

my ($pdffile,$htmlfile,$curtime); 
our $PageNo; 

sub generate_pdf 
{ 
       my $file = shift @_; 
       my $pdf_path = shift @_; 

       my $curtime= localtime(time); 
       $curtime =~ s/ /_/g; 
       $curtime =~ s/:/_/g;  
       my $time=$curtime; 
       $curtime=$pdf_path; 

       $htmlfile ="$BASEPATH/macro/$proj/PDF_Report/".$curtime.".html"; 
       $pdffile="$BASEPATH/macro/$proj/PDF_Report/".$curtime.".pdf"; 
       open(INFO, ">$htmlfile"); 
       print INFO $file; 
       close(INFO); 


       system "../bin/wkhtmltopdf-amd64 -B 15 -L 15 -R 15 --zoom 1.00 --margin-top 10 --footer-spacing 3 --footer-left 'Page:[page]' --footer-right 'Date:$time' --header-center 'BenchMark Report' --footer-center 'Tata Technologies Ltd.' --footer-font-size 12 --header-font-size 15 -O landscape $htmlfile $pdffile"; 


       return 1; 


} 
1; 

답변

0

하나의 솔루션은 한 페이지 PDF 파일, 각 페이지에 대해 하나의 컬렉션을 만들 수 후 최종 PDF로 가입 할 수 있습니다.

if (@pdfFilenames > 1){ 
    my $filenameString = join(' ',@pdfFilenames); 
    `pdfunite $filenameString joinedFinalAllCombinedPDFfilename.pdf `; 
    `rm $filenameString `; 
     : 
     : 
    } 

은 pdfunite 명령 줄 앱을 사용합니다. 매우 유용한 pdftk (Tk 응용 프로그램이 아닌 AFAIK)와 같은 PDF를 결합하는 다른 방법이 있습니다.

pdftk A=a-doc.pdf B=bbbbb.pdf C=file3.pdf D=page4.pdf\ 
     cat  C D A1-10 B18 B2 A400-4-2 \ 
     output combined.pdf 
관련 문제