V1
V1

设置导出文档属性

本节主要分享可以在不预览报表的情况下设置导出文档的属性。

导出 PDF 设置

以下代码指定了PDF的导出设置。

function load() {
            var ARJS = GC.ActiveReports.Core;
            var PDF = GC.ActiveReports.PdfExport;

            var onProgressCallback = function (pageCount) {
                console.log(pageCount);
            }

            var settings = {
                info: {
                    title: 'Invoice List',
                    subject: 'This is the Invoice List',
                    author: 'John K',
                    keywords: 'PDF; import; export'
                },
                security:
                {
                    userPassword: 'user_Pwd',
                    ownerPassword: 'owner_Pwd',
                    permissions: {
                        printing: 'lowResolution',
                        modifying: true,
                        annotating: true,
                        copying: true,
                        contentAccessibility: false,
                        documentAssembly: false
                    }
                },
                pdfVersion:"1.5",
                autoPrint: true,
                fonts: [

                    {
                        name: 'SimSun-ExtB',
                        source: '/fonts/simsunb.ttf'
                    },
                    {
                        name: 'Matura MT Script Capitals',
                        source: '/fonts/MATURASC.TTF',
                    },
                    {
                        name: 'Stencil',
                        source: '/fonts/STENCIL.ttf'
                    }
                ]

            }
            var pageReport = new ARJS.PageReport();
            pageReport.load('/reports/InvoiceList.rdlx-json')
                .then(() => pageReport.run())
                .then(pageDocument => PDF.exportDocument(pageDocument, settings, onProgressCallback))
                .then(result => result.download('InvoiceList'));

        }

注意:

  • 默认的PDF版本(1.3)仅允许设置4种基本权限类型:打印,修改,复制和注释。 其他所有权限都需要PDF 1.4+以上的版本。
  • 如果Adobe Acrobat Reader(以及其他阅读器应用程序)设置为“不允许”拼接文档,因此导出PDF无法被拼接。 Adobe Acrobat应该设置显示文档本身的权限。
PDF导出设置的描述 样例代码
标题 - 文件标题。 info: {title: 'Invoice List'}                                                              
作者 - 显示在查看器应用程序的文档属性中的作者姓名。 info: {author: 'John K'}
关键字 - 与文档关联的关键字。 info: {keywords: 'PDF; import; export'}
主题 - 文档的主题。 info: {subject: 'This is the Invoice List'}
用户名密码 - 可以在阅读器中输入的用户密码。 如果将此值保留为空,则不会提示用户输入密码,但是该用户将受到指定权限的限制。 security: {userPassword: 'user_Pwd'}
作者密码 - 可以在阅读器中输入的所有者密码,无论指定的用户权限如何,该密码都可以完全访问文档。 security: {ownerPassword: 'owner_Pwd'}
允许打印 - 允许以低或高分辨率打印文档。 security: {permissions: {printing: 'lowResolution'}}
允许复制 - 允许从文档中复制内容。 security: {permissions: {copying: true}}
允许修改 - 允许在文档中进行编辑。 security: {permissions: {modifying: true}}
允许注释 - 允许添加或编辑注释。 security: {permissions: {annotating: true}}
允许内容可访问性 - 允许文本提取或可访问性。 security: {permissions: {contentAccessibility: false}}
允许文件组装 - 允许合并PDF文档。 security: {permissions: documentAssembly: false}}
PDF版本 - 允许设置PDF版本 - 1.3, 1.4, 1.5, 1.6, 1.7, 及 1.7ext3。 pdfVersion:"1.5"
打开时打印 - 表示打开后是否应打印文档。 autoPrint: true
文件名 - 文档名称. .then(result => result.download('InvoiceList'));

导出 Excel 设置

以下代码指定Excel的导出设置。

function load() {
            var ARJS = GC.ActiveReports.Core;
            var Excel = GC.ActiveReports.XlsxExport;

            var onProgressCallback = function (pageCount) {
                console.log(pageCount);
            }

            var settings = {
                info: {
                    creator: 'Jack'
                },
                sheetName: 'Sheet_Details',
                pageSettings: {
                    size:'A4',
                    orientation: 'landscape'
                },
                password: 'password'
            }
            var pageReport = new ARJS.PageReport();
            pageReport.load('/reports/InvoiceList.rdlx-json')
                .then(() => pageReport.run())
                .then(pageDocument => Excel.exportDocument(pageDocument, settings, onProgressCallback))
                .then(result => result.download('InvoiceList'));
        }
属性设置 示例代码
作者 - 显示在查看器应用程序的文档属性中的作者姓名。 info: {creator: 'Jack'}
尺寸 -Excel文件的大小-Letter,Legal,A4等 size:'A4'
方向 - Excel文档的方向-纵向或横向。 pageSettings: {orientation: 'landscape'}
工作表名称 - name of the Excel document or sheet. sheetName: 'Sheet_Details'
密码 - 密码以打开Excel文档。 password: 'password'
文件名 - 导出的Excel文档的名称。 .then(result => result.download('InvoiceList'));

导出 HTML 设置

以下代码指定HTML的导出设置。

function load() {
            var ARJS = GC.ActiveReports.Core;
            var HTML = GC.ActiveReports.HtmlExport;

            var onProgressCallback = function (pageCount) {
                console.log(pageCount);
            }

            var settings = {
                autoPrint: true,
                multiPage: true,
                renderOptions: {
                    galleyMode: true //property available only through API
                }
            }

            var pageReport = new ARJS.PageReport();
            pageReport.load('/reports/InvoiceList.rdlx-json')
                .then(() => pageReport.run())
                .then(pageDocument => HTML.exportDocument(pageDocument, settings, onProgressCallback))
                .then(result => result.download('InvoiceList'));

        }
属性设置 示例代码
标题 - 文档标题。 title: 'Invoice List'                                     
另存为存档 - 将所有报表页面导出为存档文件(zip格式)或单个HTML页面。 multiPage: true
打开后打印 - 表示是否应在打开时打印文档。 autoPrint: true
文件名 - 导出的HTML文档的名称。 .then(result => result.download('InvoiceList'));

限制

PDF

  • PDF打印预设不可用。
  • 不支持PDF / A格式。
  • 不能添加水印。
  • 没有字体后备属性无法可以找到丢失的字体。
  • 只能导出JPG和PNG图像, Gif, bmp, emf, tiff, wmf 无法导出.
  • 不支持垂直文本。
  • 不支持删除线。
  • 报表导航到存在书签的页面,而不导航到指定了书签ID的特定控件。

Excel

  • 不支持斜线。

HTML

  • HTML不是最佳的打印格式。 改用其他出口。

下表列出了PDF或Excel导出中不支持的属性。

属性 PDF是否支持 Excel是否支持
报表 - Bookmark
文本框 - CharacterSpacing
文本框 - LineSpacing
图片 - Alignment
图片 - Action
图片 - BackgroundRepeat
图片 - Sizing N
形状 - RoundingRadius
形状 - Style
表格 - AutoMergeMode
表格 - WritingMode
直线 - LineWidth
子报表 - SubstituteThemesOnSubreport
矩表 - WritingMode