在Perl中,如何使用XML文件中的数据生成PDF文件?

在Perl中,如何使用XML文件中的数据生成PDF文件?,perl,Perl,可能重复: 我有存储在散列中的xml标记,如下所示 $var1={ 'stud.xml'={ '24'=>'<address> <streetname="xxxx"/> <housenum="138"/"> </address>'

可能重复:

我有存储在散列中的xml标记,如下所示

$var1={
     'stud.xml'={ 
                '24'=>'<address>
                        <streetname="xxxx"/>
                         <housenum="138"/">
                        </address>'
                 '20'=>'<address>
                       <streetname="xxxx"/>
                        <housenum="110"/">
                       </address>'
                     }...........

现在我需要使用perl脚本将其转换为pdf。我搜索了一下,发现PDF::API2是最好的转换成PDF的模块。阅读模块后,我能够创建新的pdf文件并设置一些设置,如字体、格式等,但我不知道如何将此xml数据处理为pdf。

创建一个LaTeX模板,使用数据填充模板,然后在其上运行pdflatex

请注意,您发布的XMLish内容没有帮助。发布实际的XML或Perl数据结构

以下是一个例子:

#!/usr/bin/env perl

use warnings; use strict;
use HTML::Template;
use XML::Simple;

my $xml = <<'EO_XML';
<students>
    <student id="24">
        <address>
            <streetname val="xxxx"/>
            <housenum val="138" />
        </address>
    </student>
    <student id="20">
        <address>
            <streetname val="xxxx"/>
            <housenum val="110" />
        </address>
    </student>
</students>
EO_XML

my $data = XMLin($xml)->{student};

my @loop_data;

for my $student (values %$data) {
    my $address = $student->{address};
    push @loop_data, {
        HOUSENUM => $address->{housenum}{val},
        STREETNAME => $address->{streetname}{val},
    };
}

my $tmpl = HTML::Template->new(filehandle => \*DATA);

$tmpl->param(STUDENTS => \@loop_data);
$tmpl->output(print_to => \*STDOUT);

__DATA__
\documentclass{article}

\begin{document}

<TMPL_LOOP STUDENTS>
<TMPL_VAR HOUSENUM> <TMPL_VAR STREETNAME>

</TMPL_LOOP>
\end{document}

没有神奇的将XML转换为PDF按钮。您希望您的数据如何显示在PDF中?重新搜索不会改变答案,您需要理解我在这里告诉您的内容@Jack Maney,我需要在下面显示学生号和他的地址等数据。@pavani-然后简单地提取您需要的数据并打印出来。使用pdf::API2模块以pdf格式打印,或者我需要使用perl提取并创建latex模板,然后我需要编写latex模板并使用pdflatex编译。我认为您建议的内容很有趣上次OP问这个问题时,我也提出了同样的问题,我想你可能误解了我,我很高兴你得出了同样的结论。我以为这是一个繁文缛节为这项任务,但这是我可以作出的贡献。你得出了同样的结论,这很有趣@不,我知道你从哪里来,但忘了加一个:-;-无论如何,生成PDF文件是一件痛苦的事情——在许多情况下,将它转为其他文件对我来说是一个救命稻草。见鬼,我甚至将输出写入电子表格,并自动打印到PDF/PS。@Sinan,谢谢回复。在上面的示例中,您创建了一个html模板。所以就像我需要创建一个latex模板并在pdf latex上运行它一样。哪种乳胶更好?我需要安装任何latex编译器。@Sinan,你能告诉我这个程序应该做什么吗?运行这个程序后我能做什么。这是什么意思