如何在DataTables插件中更改字体大小以导出PDF?

4
我该如何更改字体大小以在datatables插件中导出PDF?我查看了源代码,但找不到相关设置! 有人能帮我吗? 谢谢。
4个回答

4
正如Adam所述,您必须修改操作脚本。在TableTools 2.0.1中,文件就是Adam所说的那个。 在操作脚本中,标题的字体在第212行被定义:
        pdf.setFont( new CoreFont(FontFamily.HELVETICA), 14 );//14 is the font size
        if ( title != "" )
        {
            pdf.writeText(11, title+"\n");
        }

另一段文本在第218行

        pdf.setFont( new CoreFont(FontFamily.HELVETICA), 11 );
        if ( message != "" )
        {
            pdf.writeText(11, message+"\n");
        }

这里有完整的库参考文档,用于生成PDF(我指出了字体部分):http://alivepdf.bytearray.org/alivepdf-asdoc/org/alivepdf/fonts/FontFamily.html

修改Action Script后,您必须使用在Action Script文件顶部找到的命令编译一个新的copy_cvs_xls_pdf.swf: 使用以下命令进行编译:mxmlc --target-player=10.0.0 -static-link-runtime-shared-libraries=true -library-path+=lib ZeroClipboardPdf.as

您需要Flex 4 SDK才能构建SWF,您可以从Adobe开源页面免费获取。

我尝试过它,它可以工作。

您还应该始终查看http://datatables.net/forums/,我发现this对我编译文件很有帮助!

希望它有所帮助。


另外:对于Flex SDK版本4+,将--target-player部分更改为--target-player=11.1.0,并将文件名从ZeroClipboardPdf.as更改为ZeroClipboard.as - Dmitry Gonchar
1
嘿,太好了,但我是新手...你能指导我如何编辑“.as”文件并将其保存为“.swf”文件吗?因为我下载了主要的“.as”文件并编辑了一些前端等内容,然后保存为swf文件...但什么也没有发生... - user3209031

2

字体文本直接在Flash中呈现,无法使用CSS进行修改。如果您想更改字体大小,需要修改TableTools的ActionScript文件。

它位于

<Datatables Location>/extras/TableTools/media/as3/ZeroClipboardPdf.as

是的,但在那个文件(/extras/TableTools/media/as3/ZeroClipboardPdf.as)中我找不到"font.size"。我怎样才能改变PDF的字体大小呢?谢谢。 - bungdito
1
很抱歉,@bungdito,我不会ActionScript。 - Adam Prax

0

也许现在回答有点晚了,但我真的没有找到任何关于tabletools样式技术的作者支持文件或其他网站...毫不羞耻地说,那时我对actionscript并不是很了解,一直在网上搜索可靠的文档。但所有的努力都白费了。简而言之,这就是你需要做的来改变生成的pdf的样式:

1.下载并安装Flex SDK 4。

2.获取最新的AlivePDF.swc。

3.设置路径并编辑AS文件。


0

我也想分享我的经验。它可能有助于像我这样没有 ActionScript 背景的人。

关键是在 as3 文件夹中有两个版本的 ZeroClipboard 类:

  • 一个在 ZeroClipboard.as 文件中
  • 另一个在 ZeroClipboardPdf.as 文件中

很明显,如果我们想改变 PDF 导出文件的字体大小,我们会使用 ZeroClipboardPdf.as 文件。然而,当我尝试在该文件顶部给出的命令时

mxmlc --target-player=11.1 -static-link-runtime-shared-libraries=true -library-path+=lib ZeroClipboardPdf.as

根据上面的评论,将--target-player更改为11.1

我收到了以下错误信息

Error: A file found in a source-path 'ZeroClipboardPdf' must have the same name as the class definition inside the file 'ZeroClipboard'.

这是我所做的:

  • 将名为“ZeroClipboard.as”的文件更改为“ZeroClipboardNonePdf.as”
  • 将名为“ZeroClipboardPdf.as”的文件更改为“ZeroClipboard.as”

然后,使用了这个命令

mxmlc --target-player=11.1 -static-link-runtime-shared-libraries=true -library-path+=lib ZeroClipboard.as

它生成了一个名为ZeroClipboard.swf的文件在as3文件夹中,我将该文件重命名为copy_csv_xls_pdf.swf并在我的项目中使用。

开发环境:Windows 7,Adobe Flex 4.6


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接